From: Brian Behlendorf Date: Wed, 21 Mar 2007 21:14:10 +0000 (-0400) Subject: [COVERITY] Fix memory leak in libe2p (e2p_edit_mntopts) X-Git-Tag: E2FSPROGS-1_40~105 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61bf36ef2d322ccdc231557a6ee45c7569a507c5;p=thirdparty%2Fe2fsprogs.git [COVERITY] Fix memory leak in libe2p (e2p_edit_mntopts) Need to free memory allocated to buf. Coverity ID: 17: Resource Leak Coverity ID: 18: Resource Leak Signed-off-by: Brian Behlendorf Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/e2p/ChangeLog b/lib/e2p/ChangeLog index 0518b2a1a..557bdfd88 100644 --- a/lib/e2p/ChangeLog +++ b/lib/e2p/ChangeLog @@ -1,6 +1,7 @@ 2007-03-21 Theodore Tso - * feature.c (e2p_edit_feature): Fix memory leak. + * feature.c (e2p_edit_feature), mntopts.c (e2p_edit_mntopts): Fix + memory leak. 2006-11-12 Theodore Tso diff --git a/lib/e2p/mntopts.c b/lib/e2p/mntopts.c index 6d0eca0ae..4e50e9f95 100644 --- a/lib/e2p/mntopts.c +++ b/lib/e2p/mntopts.c @@ -98,6 +98,7 @@ int e2p_edit_mntopts(const char *str, __u32 *mntopts, __u32 ok) char *cp, *buf, *next; int neg; unsigned int mask; + int rc = 0; buf = malloc(strlen(str)+1); if (!buf) @@ -120,10 +121,14 @@ int e2p_edit_mntopts(const char *str, __u32 *mntopts, __u32 ok) cp++; break; } - if (e2p_string2mntopt(cp, &mask)) - return 1; - if (ok && !(ok & mask)) - return 1; + if (e2p_string2mntopt(cp, &mask)) { + rc = 1; + break; + } + if (ok && !(ok & mask)) { + rc = 1; + break; + } if (mask & EXT3_DEFM_JMODE) *mntopts &= ~EXT3_DEFM_JMODE; if (neg) @@ -132,5 +137,6 @@ int e2p_edit_mntopts(const char *str, __u32 *mntopts, __u32 ok) *mntopts |= mask; cp = next ? next+1 : 0; } - return 0; + free(buf); + return rc; }