mkfs.ubifs: don't leak hastable iterators
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>
Sun, 10 Nov 2019 13:02:12 +0000 (14:02 +0100)
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>
Sun, 10 Nov 2019 14:29:53 +0000 (15:29 +0100)
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
ubifs-utils/mkfs.ubifs/devtable.c
ubifs-utils/mkfs.ubifs/mkfs.ubifs.c

index 10faaca362da1c901676dd9bfbbbd688a74d7bba..0afea905628a4c9687b80c7a45e76c4fbc62784c 100644 (file)
@@ -525,6 +525,7 @@ void free_devtable_info(void)
                         */
                        hashtable_destroy(ph_elt->name_htbl, 1);
                } while (hashtable_iterator_advance(ph_itr));
+               free(ph_itr);
        }
        hashtable_destroy(path_htbl, 1);
 }
index 87f7b4fd857d316c42156eda2d7d12a57b69bb12..4247270f3b5a6153145924a72ea420a0569f4aeb 100644 (file)
@@ -2013,7 +2013,7 @@ static int add_directory(const char *dir_name, ino_t dir_inum, struct stat *st,
        unsigned int nlink = 2;
        struct path_htbl_element *ph_elt;
        struct name_htbl_element *nh_elt = NULL;
-       struct hashtable_itr *itr;
+       struct hashtable_itr *itr = NULL;
        ino_t inum;
        unsigned char type;
        unsigned long long dir_creat_sqnum = ++c->max_sqnum;
@@ -2218,6 +2218,7 @@ static int add_directory(const char *dir_name, ino_t dir_inum, struct stat *st,
        return 0;
 
 out_free:
+       free(itr);
        free(name);
        if (existing)
                closedir(dir);