]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
findmnt: (verify) fix mem leak [coverity scan]
authorKarel Zak <kzak@redhat.com>
Wed, 5 Oct 2016 08:38:28 +0000 (10:38 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 5 Oct 2016 08:52:24 +0000 (10:52 +0200)
misc-utils/findmnt-verify.c

index cfb35458caeeda55a4c21d1ef6b0e34a55e2be9e..1430c945d29a3e81f4fd5668ae28eea5697ae6b9 100644 (file)
@@ -180,7 +180,7 @@ static int verify_source(struct verify_context *vfy)
        const char *src = mnt_fs_get_srcpath(vfy->fs);
        char *t = NULL, *v = NULL;
        struct stat sb;
-       int isbind;
+       int isbind, rc = 0;
 
        /* source is NAME=value tag */
        if (!src) {
@@ -195,9 +195,10 @@ static int verify_source(struct verify_context *vfy)
 
        /* blkid is able to parse it, but libmount does not see it as a tag --
         * it means unsupported tag */
-       } else if (blkid_parse_tag_string(src, &t, &v) == 0 && stat(src, &sb) != 0)
-               return verify_err(vfy, _("unsupported source tag: %s"), src);
-
+       } else if (blkid_parse_tag_string(src, &t, &v) == 0 && stat(src, &sb) != 0) {
+               rc = verify_err(vfy, _("unsupported source tag: %s"), src);
+               goto done;
+       }
        isbind = mnt_fs_get_option(vfy->fs, "bind", NULL, NULL) == 0;
 
        /* source is path */
@@ -217,7 +218,7 @@ static int verify_source(struct verify_context *vfy)
 done:
        free(t);
        free(v);
-       return 0;
+       return rc;
 }
 
 static int verify_options(struct verify_context *vfy)