Richard W.M. Jones wrote:
Subject: [PATCH 2/2] daemon: Change chdir to use openat/fdopendir.
To make this work on older Linux kernels and on systems
without openat, you can use gnulib's openat module.
...
+#ifndef _ATFILE_SOURCE
+#define _ATFILE_SOURCE
+#endif
In which case, you won't need to do the above.
...
+ int fd;
I like to call this sort of variable "fd_cwd"
or something similar, so that it's easier to see
that it's more than a "normal" open-on-some-file fd.
Other than that, it looks fine.
- /* MUST chdir ("/") before leaving this function. */
- if (chdir (sysroot) == -1) {
+ /* 'fd' here is a surrogate for the current working directory, so
+ * that we don't have to actually call chdir(2).
+ */
+ fd = open (sysroot, O_RDONLY | O_DIRECTORY);
...