From 37c9792c43cd62bd2a5471506a0ca687599bddc9 Mon Sep 17 00:00:00 2001 From: Magnus Ahltorp Date: Thu, 11 Feb 2016 07:36:26 +0100 Subject: Free permdb object on error --- c_src/permdb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'c_src/permdb.c') diff --git a/c_src/permdb.c b/c_src/permdb.c index a4344a0..4b3a6ef 100644 --- a/c_src/permdb.c +++ b/c_src/permdb.c @@ -577,18 +577,21 @@ permdb_alloc(const char *dbpath) } else if (state->datafile.filesize > 0 && state->indexfile.filesize == 0) { if (rebuild_index_file(state) < 0) { warnx("index file rebuilding failed"); + permdb_free(state); return NULL; } } if (datafile_verify_file(&state->datafile) < 0) { warnx("data file verification failed"); - return NULL; + permdb_free(state); + return NULL; } if (indexfile_verify_file(&state->indexfile) < 0) { warnx("index file verification failed, rebuilding"); if (rebuild_index_file(state) < 0) { warnx("index file rebuilding failed"); + permdb_free(state); return NULL; } } -- cgit v1.1