]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/free.c
tdb2: fix use after free on error message
[ccan] / ccan / tdb2 / free.c
index 7633eb772c7ff925f9cba7779234d1371b4427e0..7ede24616efc78df4e16eda260ace518bbd88755 100644 (file)
@@ -457,12 +457,12 @@ again:
                }
 
                if (frec_magic(r) != TDB_FREE_MAGIC) {
-                       tdb_access_release(tdb, r);
                        ecode = tdb_logerr(tdb, TDB_ERR_CORRUPT, TDB_LOG_ERROR,
                                           "lock_and_alloc:"
                                           " %llu non-free 0x%llx",
                                           (long long)off,
                                           (long long)r->magic_and_prev);
+                       tdb_access_release(tdb, r);
                        goto unlock_err;
                }