]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-mdb/tools.c
Happy New Year
[openldap] / servers / slapd / back-mdb / tools.c
index 4dcfdb0fbc37543a6098e6af854382162dc28290..7b490a595fc2722d9e104e9580dbcc5a0b8cbd3d 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2011-2012 The OpenLDAP Foundation.
+ * Copyright 2011-2013 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -106,7 +106,9 @@ int mdb_tool_entry_open(
                        ldap_pvt_thread_cond_init( &mdb_tool_index_cond_work );
                        if ( mdb->mi_nattrs ) {
                                int i;
+#if 0                  /* threaded indexing has no performance advantage */
                                mdb_tool_threads = slap_tool_thread_max - 1;
+#endif
                                if ( mdb_tool_threads > 1 ) {
                                        mdb_tool_index_rec = ch_calloc( mdb->mi_nattrs, sizeof( IndexRec ));
                                        mdb_tool_index_tcount = mdb_tool_threads - 1;
@@ -231,6 +233,9 @@ next:;
        previd = *(ID *)key.mv_data;
        id = previd;
 
+       if ( !data.mv_size )
+               goto next;
+
        if ( tool_filter || tool_base ) {
                static Operation op = {0};
                static Opheader ohdr = {0};
@@ -326,6 +331,10 @@ mdb_tool_entry_get_int( BackendDB *be, ID id, Entry **ep )
                        goto done;
                }
        }
+       if ( !data.mv_size ) {
+               rc = LDAP_NO_SUCH_OBJECT;
+               goto done;
+       }
 
        op.o_hdr = &ohdr;
        op.o_bd = be;
@@ -346,6 +355,7 @@ mdb_tool_entry_get_int( BackendDB *be, ID id, Entry **ep )
                                ch_free( dn.bv_val );
                                ch_free( ndn.bv_val );
                                rc = LDAP_NO_SUCH_OBJECT;
+                               goto done;
                        }
                }
        }