]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
(rpl_openat): Correct comment.
authorJim Meyering <jim@meyering.net>
Fri, 31 Dec 2004 10:06:43 +0000 (10:06 +0000)
committerJim Meyering <jim@meyering.net>
Fri, 31 Dec 2004 10:06:43 +0000 (10:06 +0000)
Call free_cwd, to avoid leaking a file descriptor.

lib/openat.c

index 26e280d786a760674a444e0c2b714f863677af67..fa617b807f39ddc5e5a91fe7158af6a4b651a970 100644 (file)
 /* Replacement for Solaris' openat function.
    <http://www.google.com/search?q=openat+site:docs.sun.com>
    Simulate it by doing save_cwd/fchdir/open/restore_cwd.
-   If either the fchdir or the restore_cwd fails, then exit nonzero.  */
+   If either the save_cwd or the restore_cwd fails (relatively unlikely,
+   and usually indicative of a problem that deserves close attention),
+   then give a diagnostic and exit nonzero.
+   Otherwise, upon failure, set errno and return -1, as openat does.
+   Upon successful completion, return a file descriptor.  */
 int
 rpl_openat (int fd, char const *filename, int flags, ...)
 {
@@ -80,6 +84,8 @@ rpl_openat (int fd, char const *filename, int flags, ...)
     error (exit_failure, errno,
           _("openat: unable to restore working directory"));
 
+  free_cwd (&saved_cwd);
+
   errno = saved_errno;
   return new_fd;
 }