Initialize pidfd to an invalid descriptor, to fail gracefully on
those kernels that do not implement CLONE_PIDFD and leave pidfd
unchanged.
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Christian Brauner <christian@brauner.io>
 
 int main(int argc, char *argv[])
 {
-       int pidfd = 0, ret = EXIT_FAILURE;
+       int pidfd = -1, ret = EXIT_FAILURE;
        char buf[4096] = { 0 };
        pid_t pid;
        int procfd, statusfd;
 
        pid = pidfd_clone(CLONE_PIDFD, &pidfd);
        if (pid < 0)
-               exit(ret);
+               err(ret, "CLONE_PIDFD");
+       if (pidfd == -1) {
+               warnx("CLONE_PIDFD is not supported by the kernel");
+               goto out;
+       }
 
        procfd = pidfd_metadata_fd(pid, pidfd);
        close(pidfd);