]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/check.c
tdb2: close memory leak in tdb_check()
[ccan] / ccan / tdb2 / check.c
index 5a238a1c48274c507511518bea9d060daaa2e8de..df61184f60822fd0dac8af95a16897f28fb3a772 100644 (file)
@@ -512,7 +512,7 @@ size_t dead_space(struct tdb_context *tdb, tdb_off_t off)
 
        for (len = 0; off + len < tdb->map_size; len++) {
                char c;
-               if (tdb->methods->read(tdb, off, &c, 1))
+               if (tdb->methods->tread(tdb, off, &c, 1))
                        return 0;
                if (c != 0 && c != 0x43)
                        break;
@@ -700,9 +700,13 @@ int tdb_check(struct tdb_context *tdb,
 
        tdb_allrecord_unlock(tdb, F_RDLCK);
        tdb_unlock_expand(tdb, F_RDLCK);
+       free(fr);
+       free(used);
        return 0;
 
 fail:
+       free(fr);
+       free(used);
        tdb_allrecord_unlock(tdb, F_RDLCK);
        tdb_unlock_expand(tdb, F_RDLCK);
        return -1;