]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/test/layout.c
tdb2: avoid writing uninitialized bytes in test/layout.c
[ccan] / ccan / tdb2 / test / layout.c
index d4f68cbf836a6d5f836215cb8e221a39df16bf3d..16f077198dbea011a2e9510a9b6dc1aa1b938260 100644 (file)
@@ -252,6 +252,8 @@ struct tdb_context *tdb_layout_get(struct tdb_layout *layout)
        }
 
        mem = malloc(off);
+       /* Fill with some weird pattern. */
+       memset(mem, 0x99, off);
        /* Now populate our header, cribbing from a real TDB header. */
        tdb = tdb_open(NULL, TDB_INTERNAL, O_RDWR, 0, &tap_log_attr);
        memcpy(mem, tdb->map_ptr, sizeof(struct tdb_header));
@@ -320,3 +322,17 @@ struct tdb_context *tdb_layout_get(struct tdb_layout *layout)
 
        return tdb;
 }
+
+void tdb_layout_free(struct tdb_layout *layout)
+{
+       unsigned int i;
+
+       for (i = 0; i < layout->num_elems; i++) {
+               if (layout->elem[i].base.type == DATA) {
+                       free(layout->elem[i].used.key.dptr);
+                       free(layout->elem[i].used.data.dptr);
+               }
+       }
+       free(layout->elem);
+       free(layout);
+}