]> git.sur5r.net Git - openldap/blobdiff - libraries/liblmdb/mdb_stat.c
mdb_stat cleanup.
[openldap] / libraries / liblmdb / mdb_stat.c
index ca6ad63955e9e7d024ca7d731622cdbd920d1f22..3e6be21597ed36de0e7bf0f600bfca4f8dca9bea 100644 (file)
@@ -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);