Whamcloud - gitweb
Make sure test progams free all allocated memory
authorTheodore Ts'o <tytso@mit.edu>
Sat, 12 Nov 2016 04:15:56 +0000 (23:15 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 12 Nov 2016 04:15:56 +0000 (23:15 -0500)
This eliminates complaints from ASAN's memory leak detector.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
lib/e2p/ostype.c
lib/ext2fs/csum.c
lib/ext2fs/inline_data.c
lib/ext2fs/tst_badblocks.c
lib/ext2fs/tst_bitops.c
misc/base_device.c

index d002e75..7f08844 100644 (file)
@@ -66,6 +66,7 @@ int main(int argc, char **argv)
                s = e2p_os2string(i);
                os = e2p_string2os(s);
                printf("%d: %s (%d)\n", i, s, os);
+               free(s);
                if (i != os) {
                        fprintf(stderr, "Failure!\n");
                        exit(1);
index fcee07c..e67850f 100644 (file)
@@ -1012,6 +1012,7 @@ int main(int argc, char **argv)
                printf("checksums for different data shouldn't match\n");
                exit(1);
        }
+       ext2fs_free(fs);
 
        return 0;
 }
index 587b88d..c8613f6 100644 (file)
@@ -845,6 +845,7 @@ int main(int argc, char *argv[])
                return 1;
        }
        printf("tst_inline_data(DIR): OK\n");
+       ext2fs_free(fs);
 
        return 0;
 }
index c685f33..b6e766a 100644 (file)
@@ -201,6 +201,7 @@ int file_test(badblocks_list bb)
                printf("Block bitmap NOT matched.\n");
                test_fail++;
        }
+       ext2fs_badblocks_list_free(new_bb);
        return 0;
 }
 
@@ -215,7 +216,7 @@ static void invalid_proc(ext2_filsys fs, blk_t blk)
        }
 }
 
-int file_test_invalid(badblocks_list bb)
+void file_test_invalid(badblocks_list bb)
 {
        badblocks_list new_bb = 0;
        errcode_t       retval;
@@ -234,12 +235,14 @@ int file_test_invalid(badblocks_list bb)
        if (!f) {
                fprintf(stderr, "Error opening temp file: %s\n",
                        error_message(errno));
-               return 1;
+               test_fail++;
+               goto out;
        }
        retval = ext2fs_write_bb_FILE(bb, 0, f);
        if (retval) {
                com_err("file_test", retval, "while writing bad blocks");
-               return 1;
+               test_fail++;
+               goto out;
        }
        fprintf(f, "34500\n");
 
@@ -248,7 +251,8 @@ int file_test_invalid(badblocks_list bb)
        retval = ext2fs_read_bb_FILE(fs, f, &new_bb, invalid_proc);
        if (retval) {
                com_err("file_test", retval, "while reading bad blocks");
-               return 1;
+               test_fail++;
+               goto out;
        }
        fclose(f);
        if (!test_expected_fail) {
@@ -263,7 +267,10 @@ int file_test_invalid(badblocks_list bb)
                printf("Block bitmap NOT matched.\n");
                test_fail++;
        }
-       return 0;
+       ext2fs_badblocks_list_free(new_bb);
+out:
+       free(fs->super);
+       free(fs);
 }
 
 int main(int argc, char **argv)
@@ -354,6 +361,8 @@ int main(int argc, char **argv)
                ext2fs_badblocks_list_free(bb3);
        if (bb4)
                ext2fs_badblocks_list_free(bb4);
+       if (bb5)
+               ext2fs_badblocks_list_free(bb5);
 
        return test_fail;
 
index ed71447..8262d3b 100644 (file)
@@ -220,12 +220,6 @@ int main(int argc, char **argv)
        printf("64-bit: ext2fs_clear_bit test succeed.\n");
 
        /* Do bigarray test */
-       bigarray = malloc(1 << 29);
-       if (!bigarray) {
-               fprintf(stderr, "Failed to allocate scratch memory!\n");
-               exit(1);
-       }
-
         bigarray[BIG_TEST_BIT >> 3] = 0;
 
        ext2fs_set_bit64(BIG_TEST_BIT, bigarray);
@@ -289,6 +283,6 @@ int main(int argc, char **argv)
                exit(1);
 
        printf("64-bit: ext2fs_fast_set_bit big_test successful\n");
-
+       free(bigarray);
        exit(0);
 }
index b2ce138..d1c1cd9 100644 (file)
@@ -150,7 +150,7 @@ errout:
 #ifdef DEBUG
 int main(int argc, char** argv)
 {
-       const char *base;
+       char *base;
        char  buf[256], *cp;
 
        while (1) {
@@ -164,6 +164,7 @@ int main(int argc, char** argv)
                        *cp = 0;
                base = base_device(buf);
                printf("%s\t%s\n", buf, base ? base : "NONE");
+               free(base);
        }
        exit(0);
 }