We use symbols provided by unistd.h without including it. E.g.
open(), close(), read(), write(), access(), symlink(), unlink(), rmdir(),
fsync(), syncfs(), lseek(), ftruncate(), fchown(), dup2(), pipe2(),
getuid(), getgid(), gettid(), getppid(), pipe2(), execv(), _exit(),
environ, STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO, F_OK, and their
friends and variants, so on.
Currently, unistd.h is indirectly included mainly in the following two paths:
- through missing_syscall.h, which is planned to covert to .c file.
- through signal.h -> bits/sigstksz.h, which is new since glibc-2.34.
Note, signal.h is included by sd-eevent.h. So, many source files
indirectly include unistd.h if newer glibc is used.
Currently, our baseline on glibc is 2.31. We need to support glibc older
than 2.34, but unfortunately, we do not have any CI environments with
such old glibc. CIFuzz uses glibc-2.31, but it builds only fuzzers, and
many files are even not compiled.
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
#include "analyze.h"
#include "analyze-condition.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
#include "sd-bus.h"
#include <fnmatch.h>
#include <pthread.h>
+#include <unistd.h>
#if HAVE_VALGRIND_VALGRIND_H
# include <valgrind/valgrind.h>
#endif
#include <stdlib.h>
#include <string.h>
#include <sys/file.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "errno-util.h"
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/mount.h>
+#include <unistd.h>
#include "errno-util.h"
#include "fd-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "alloc-util.h"
#include "errno-util.h"
#include "fd-util.h"
#include <sys/auxv.h>
#include <sys/ioctl.h>
#include <threads.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "fd-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <threads.h>
+#include <unistd.h>
#include "errno-util.h"
#include "missing_syscall.h"
#include <fcntl.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-messages.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/reboot.h>
+#include <unistd.h>
#include "sd-messages.h"
#include <syslog.h>
#include <sys/mount.h>
+#include <unistd.h>
#include "af-list.h"
#include "alloc-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "sd-bus.h"
#include "alloc-util.h"
#include <grp.h>
#include <sys/file.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "clean-ipc.h"
#include "dynamic-user.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/reboot.h>
+#include <unistd.h>
#include "ansi-color.h"
#include "emergency-action.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
+#include <unistd.h>
#include "acl-util.h"
#include "cgroup.h"
#include <sys/ioctl.h>
#include <sys/mount.h>
#include <sys/prctl.h>
+#include <unistd.h>
#if HAVE_PAM
#include <security/pam_appl.h>
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "af-list.h"
#include "capability-util.h"
#include "cgroup.h"
#include <stdlib.h>
#include <sys/mount.h>
+#include <unistd.h>
#include "confidential-virt.h"
#include "copy.h"
#include <fcntl.h>
#include <sched.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-messages.h"
#include <selinux/avc.h>
#include <selinux/selinux.h>
+#include <unistd.h>
#include "sd-bus.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <getopt.h>
+#include <unistd.h>
#include "sd-bus.h"
#include <sys/mman.h>
#include <sys/vfs.h>
+#include <unistd.h>
#include "sd-bus.h"
#include <grp.h>
#include <pwd.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-event.h"
#include <sys/inotify.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-event.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "env-util.h"
#include <sys/mount.h>
#include <sys/stat.h>
#include <sys/xattr.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "errno-util.h"
#include <sys/file.h>
#include <sys/ioctl.h>
#include <sys/xattr.h>
+#include <unistd.h>
#if HAVE_VALGRIND_MEMCHECK_H
#include <valgrind/memcheck.h>
#endif
#include <stdlib.h>
#include <sys/mount.h>
+#include <unistd.h>
#include "sd-daemon.h"
#include <getopt.h>
#include <locale.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "ansi-color.h"
#include <getopt.h>
#include <locale.h>
+#include <unistd.h>
#include "sd-event.h"
#include <getopt.h>
#include <locale.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-event.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-daemon.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
#include "sd-journal.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "fd-util.h"
#include "fuzz.h"
#include "fuzz-journald.h"
#endif
#include <sys/stat.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "audit-util.h"
#include <sys/mman.h>
#include <sys/signalfd.h>
#include <sys/statvfs.h>
+#include <unistd.h>
#include "sd-daemon.h"
#include "sd-journal.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
+#include <unistd.h>
#include "sd-event.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <pthread.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-event.h"
#include <sys/timerfd.h>
#include <sys/wait.h>
#include <threads.h>
+#include <unistd.h>
#include "sd-daemon.h"
#include "sd-event.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "libudev.h"
#include "sd-device.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "sd-bus.h"
#include "sd-device.h"
#include "sd-event.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "sd-bus.h"
#include "alloc-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "sd-json.h"
#include "sd-varlink.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "sd-bus.h"
#include "discover-image.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "sd-event.h"
+
#include "cgroup-util.h"
#include "copy.h"
#include "discover-image.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
#include "sd-daemon.h"
#include <poll.h>
#include <stdlib.h>
#include <sys/mount.h>
+#include <unistd.h>
#include "sd-daemon.h"
#include "sd-event.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
+#include <unistd.h>
#include "sd-event.h"
#include <linux/magic.h>
#include <sys/mount.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "chase.h"
#include <net/if.h>
#include <sys/file.h>
#include <sys/mount.h>
+#include <unistd.h>
#include "sd-device.h"
#include "sd-id128.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
#include "sd-daemon.h"
#include <sys/eventfd.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
+#include <unistd.h>
#include <utmpx.h>
#include "sd-daemon.h"
#include <sys/eventfd.h>
#include <sys/mount.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "errno-util.h"
#include "fd-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/loop.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-messages.h"
#include <sys/file.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "sd-id128.h"
#include "sd-json.h"
#include <stdio.h>
#include <stdlib.h>
#include <sys/resource.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-daemon.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "sd-bus.h"
#include "sd-event.h"
#include <linux/loop.h>
#include <sys/file.h>
#include <sys/mount.h>
+#include <unistd.h>
#if HAVE_OPENSSL
#include <openssl/err.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "copy.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "sd-bus.h"
#include "sd-journal.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "alloc-util.h"
#include "fs-util.h"
#include "nulstr-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
+#include <unistd.h>
#include "sd-id128.h"
#include <sys/mman.h>
#include <sys/prctl.h>
#include <sys/wait.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-daemon.h"
Copyright © 2017 Felipe Sateler
***/
+#include <unistd.h>
+
#include "sd-bus.h"
#include "alloc-util.h"
#include <fcntl.h>
#include <stdlib.h>
+#include <unistd.h>
#include "env-util.h"
#include "fd-util.h"
#include <stdlib.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "sd-id128.h"
#include <stdlib.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-json.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "alloc-util.h"
#include "cgroup-util.h"
#include "errno-util.h"
***/
#include <sys/stat.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "conf-files.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "conf-parser.h"
#include "fd-util.h"
#include "fileio.h"
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
+#include <unistd.h>
#include "dirent-util.h"
#include "fs-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
+
#include "env-util.h"
#include "parse-util.h"
#include "process-util.h"
#include <stdlib.h>
#include <sys/mount.h>
#include <sys/prctl.h>
+#include <unistd.h>
#include "sd-event.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "alloc-util.h"
#include "hashmap.h"
#include "log.h"
#include <float.h>
#include <sys/socket.h>
#include <sys/sysmacros.h>
+#include <unistd.h>
#include "sd-json.h"
#include <pthread.h>
#include <sys/file.h>
#include <sys/ioctl.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "capability-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
+#include <unistd.h>
#include "sd-id128.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "errno-util.h"
#include "fd-util.h"
#include "memfd-util.h"
#include <sys/mount.h>
#include <sys/stat.h>
#include <sys/statvfs.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "capability-util.h"
#include <sys/socket.h>
#include <sys/stat.h>
#include <sysexits.h>
+#include <unistd.h>
#include "sd-id128.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
#include "fileio.h"
#include "log.h"
#include <stdlib.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "all-units.h"
#include "alloc-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "errno-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "fd-util.h"
#include "fileio.h"
#include "parse-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/resource.h>
+#include <unistd.h>
#if HAVE_VALGRIND_VALGRIND_H
#include <valgrind/valgrind.h>
#endif
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "random-util.h"
#include "set.h"
#include "strv.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "alloc-util.h"
#include "extract-word.h"
#include "locale-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "argv-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "errno-util.h"
#include "fd-util.h"
#include "fileio.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "argv-util.h"
#include "fileio.h"
#include "initrd-util.h"
#include <fnmatch.h>
#include <stdio.h>
+#include <unistd.h>
#include "sd-daemon.h"
#include "sd-id128.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "alloc-util.h"
#include "format-util.h"
#include "libcrypt-util.h"
#include <poll.h>
#include <pthread.h>
#include <sys/socket.h>
+#include <unistd.h>
#include "sd-event.h"
#include "sd-json.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "fd-util.h"
#include "fileio.h"
#include "fs-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <unistd.h>
+
#include "manager.h"
#include "process-util.h"
#include "rm-rf.h"
#include <netinet/in.h>
#include <netinet/ip.h>
#include <resolv.h>
+#include <unistd.h>
#include "sd-bus.h"
#include "sd-daemon.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
+#include <unistd.h>
#include "sd-event.h"
#include "sd-messages.h"
#include <poll.h>
#include <stdlib.h>
+#include <unistd.h>
#include "sd-varlink.h"
/* SPDX-License-Identifier: GPL-2.0-or-later */
+#include <unistd.h>
+
#include "sd-event.h"
#include "build-path.h"
#include <sys/signalfd.h>
#include <sys/wait.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "blockdev-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <stdlib.h>
+#include <unistd.h>
#include "sd-daemon.h"
#include <getopt.h>
#include <stdlib.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "sd-daemon.h"
#include "sd-varlink.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "blockdev-util.h"