]> www.infradead.org Git - mtd-utils.git/commitdiff
mkfs.ubifs: propperly cleanup in ALL interpret_table_entry error paths
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>
Sun, 10 Nov 2019 13:12:06 +0000 (14:12 +0100)
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>
Sun, 10 Nov 2019 14:30:03 +0000 (15:30 +0100)
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
ubifs-utils/mkfs.ubifs/devtable.c

index 0afea905628a4c9687b80c7a45e76c4fbc62784c..aa815fbb094e17c71cc1243cf5ac419543f4a1e4 100644 (file)
@@ -219,8 +219,10 @@ static int interpret_table_entry(const char *line)
                }
        }
 
-       if (increment != 0 && count == 0)
-               return err_msg("count cannot be zero if increment is non-zero");
+       if (increment != 0 && count == 0) {
+               err_msg("count cannot be zero if increment is non-zero");
+               goto out_free;
+       }
 
        /*
         * Add the file/directory/device node (last component of the path) to
@@ -245,8 +247,10 @@ static int interpret_table_entry(const char *line)
                dbg_msg(3, "inserting '%s' into name hash table (major %d, minor %d)",
                        name, major(nh_elt->dev), minor(nh_elt->dev));
 
-               if (hashtable_search(ph_elt->name_htbl, name))
-                       return err_msg("'%s' is referred twice", buf);
+               if (hashtable_search(ph_elt->name_htbl, name)) {
+                       err_msg("'%s' is referred twice", buf);
+                       goto out_free;
+               }
 
                nh_elt->name = name;
                if (!hashtable_insert(ph_elt->name_htbl, name, nh_elt)) {