Whamcloud - gitweb
[COVERITY] Fix memory leak in libe2p (e2p_edit_mntopts)
authorBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 21 Mar 2007 21:14:10 +0000 (17:14 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 21 Mar 2007 21:14:10 +0000 (17:14 -0400)
Need to free memory allocated to buf.

Coverity ID: 17: Resource Leak
Coverity ID: 18: Resource Leak

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/e2p/ChangeLog
lib/e2p/mntopts.c

index 0518b2a..557bdfd 100644 (file)
@@ -1,6 +1,7 @@
 2007-03-21  Theodore Tso  <tytso@mit.edu>
 
-       * 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  <tytso@mit.edu>
 
index 6d0eca0..4e50e9f 100644 (file)
@@ -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;
 }