From: Jim Meyering Date: Fri, 31 Dec 2004 10:06:43 +0000 (+0000) Subject: (rpl_openat): Correct comment. X-Git-Tag: v5.3.0~75 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0a872de7cdea50a4194b69fba86f16c2f0d14af3;p=thirdparty%2Fcoreutils.git (rpl_openat): Correct comment. Call free_cwd, to avoid leaking a file descriptor. --- diff --git a/lib/openat.c b/lib/openat.c index 26e280d786..fa617b807f 100644 --- a/lib/openat.c +++ b/lib/openat.c @@ -37,7 +37,11 @@ /* Replacement for Solaris' openat function. 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; }