From: Hallvard Furuseth Date: Tue, 21 May 2013 21:48:27 +0000 (+0200) Subject: mdb_stat cleanup. X-Git-Tag: OPENLDAP_REL_ENG_2_4_36~36^2~38 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5ea1cd8f6d083095cf4f20b802cea90441cea03a;p=openldap mdb_stat cleanup. Exit with success when there was no failure. Do not use data containing NUL as a DB name (which is a C string). --- diff --git a/libraries/liblmdb/mdb_stat.c b/libraries/liblmdb/mdb_stat.c index ca6ad63955..3e6be21597 100644 --- a/libraries/liblmdb/mdb_stat.c +++ b/libraries/liblmdb/mdb_stat.c @@ -194,8 +194,11 @@ int main(int argc, char *argv[]) goto txn_abort; } while ((rc = mdb_cursor_get(cursor, &key, NULL, MDB_NEXT_NODUP)) == 0) { - char *str = malloc(key.mv_size+1); + char *str; MDB_dbi db2; + if (memchr(key.mv_data, '\0', key.mv_size)) + continue; + str = malloc(key.mv_size+1); memcpy(str, key.mv_data, key.mv_size); str[key.mv_size] = '\0'; rc = mdb_open(txn, str, 0, &db2); @@ -214,6 +217,9 @@ int main(int argc, char *argv[]) mdb_cursor_close(cursor); } + if (rc == MDB_NOTFOUND) + rc = MDB_SUCCESS; + mdb_close(env, dbi); txn_abort: mdb_txn_abort(txn);