From 449a3751d1e00b383ff70f6ca4516bef58ce260d Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Mon, 29 Jan 2007 14:18:28 +0100 Subject: [PATCH] Plug a leak in ls. * src/ls.c (print_dir): Don't leak a "DIR"+fd upon failure to determine dev/inode or upon detecting a symlink loop. --- ChangeLog | 4 ++++ src/ls.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index a90e169..d0de2f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2007-01-29 Jim Meyering + Plug a leak in ls. + * src/ls.c (print_dir): Don't leak a "DIR"+fd upon failure to + determine dev/inode or upon detecting a symlink loop. + * src/ls.c: Rename three global variables. (cwd_file): Rename from 'files'. (cwd_n_alloc): Rename from 'nfiles'. diff --git a/src/ls.c b/src/ls.c index 4a6d7c1..dbcc83e 100644 --- a/src/ls.c +++ b/src/ls.c @@ -2342,6 +2342,7 @@ print_dir (char const *name, char const *realname, bool command_line_arg) { file_failure (command_line_arg, _("cannot determine device and inode of %s"), name); + closedir (dirp); return; } @@ -2351,6 +2352,7 @@ print_dir (char const *name, char const *realname, bool command_line_arg) { error (0, 0, _("%s: not listing already-listed directory"), quotearg_colon (name)); + closedir (dirp); return; } -- 2.7.4