From: Brian Behlendorf Date: Wed, 28 Mar 2007 13:48:07 +0000 (-0400) Subject: [COVERITY] Fix memory leak in fsck on error paths X-Git-Tag: E2FSPROGS-1_40~93 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12f8ff440cbea083797a3f62fe8c8ab0e03f2e6b;p=thirdparty%2Fe2fsprogs.git [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 --- diff --git a/misc/ChangeLog b/misc/ChangeLog index 8341d4721..bf7a8c851 100644 --- a/misc/ChangeLog +++ b/misc/ChangeLog @@ -1,3 +1,7 @@ +2007-03-28 Theodore Tso + + * fsck.c (execute): Fix memory leak on error paths + 2007-03-21 Theodore Tso * e2image.c (output_meta_data_blocks, write_raw_image_file): Fix diff --git a/misc/fsck.c b/misc/fsck.c index 06ee02b30..1dcac2599 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); }