diff options
author | Brian Behlendorf <behlendorf1@llnl.gov> | 2007-03-28 09:48:07 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2007-03-28 09:48:07 -0400 |
commit | 12f8ff440cbea083797a3f62fe8c8ab0e03f2e6b (patch) | |
tree | ef7474b5f8ea7eb65738cfe4f9ad4bcae3861a63 /misc | |
parent | 0bed54fd3ea86772022fa994a6af265613464699 (diff) | |
download | e2fsprogs-12f8ff440cbea083797a3f62fe8c8ab0e03f2e6b.tar.gz |
[COVERITY] Fix memory leak in fsck on error paths
The memory allocated by inst is not reclaimed. There also was a
call to exit that coverity did not catch the resource leak. This
might not really be a big issue since the memory will be freed when
fsck exits, but it should be done anyway imho.
Coverity ID: 32: Resource Leak
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Diffstat (limited to 'misc')
-rw-r--r-- | misc/ChangeLog | 4 | ||||
-rw-r--r-- | misc/fsck.c | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/misc/ChangeLog b/misc/ChangeLog index 8341d472..bf7a8c85 100644 --- a/misc/ChangeLog +++ b/misc/ChangeLog @@ -1,3 +1,7 @@ +2007-03-28 Theodore Tso <tytso@mit.edu> + + * fsck.c (execute): Fix memory leak on error paths + 2007-03-21 Theodore Tso <tytso@mit.edu> * e2image.c (output_meta_data_blocks, write_raw_image_file): Fix diff --git a/misc/fsck.c b/misc/fsck.c index 06ee02b3..1dcac259 100644 --- a/misc/fsck.c +++ b/misc/fsck.c @@ -470,6 +470,7 @@ static int execute(const char *type, const char *device, const char *mntpt, s = find_fsck(prog); if (s == NULL) { fprintf(stderr, _("fsck: %s: not found\n"), prog); + free(inst); return ENOENT; } @@ -486,12 +487,14 @@ static int execute(const char *type, const char *device, const char *mntpt, pid = -1; else if ((pid = fork()) < 0) { perror("fork"); + free(inst); return errno; } else if (pid == 0) { if (!interactive) close(0); (void) execv(s, argv); perror(argv[0]); + free(inst); exit(EXIT_ERROR); } |