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).
vmware
Hallvard Furuseth 12 years ago
parent a1b16ce5f0
commit 5ea1cd8f6d
  1. 8
      libraries/liblmdb/mdb_stat.c

@ -194,8 +194,11 @@ int main(int argc, char *argv[])
goto txn_abort; goto txn_abort;
} }
while ((rc = mdb_cursor_get(cursor, &key, NULL, MDB_NEXT_NODUP)) == 0) { while ((rc = mdb_cursor_get(cursor, &key, NULL, MDB_NEXT_NODUP)) == 0) {
char *str = malloc(key.mv_size+1); char *str;
MDB_dbi db2; 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); memcpy(str, key.mv_data, key.mv_size);
str[key.mv_size] = '\0'; str[key.mv_size] = '\0';
rc = mdb_open(txn, str, 0, &db2); rc = mdb_open(txn, str, 0, &db2);
@ -214,6 +217,9 @@ int main(int argc, char *argv[])
mdb_cursor_close(cursor); mdb_cursor_close(cursor);
} }
if (rc == MDB_NOTFOUND)
rc = MDB_SUCCESS;
mdb_close(env, dbi); mdb_close(env, dbi);
txn_abort: txn_abort:
mdb_txn_abort(txn); mdb_txn_abort(txn);

Loading…
Cancel
Save