]> git.sur5r.net Git - openldap/commitdiff
Fix ldbmcat crash problem: first use the key before deleting it!
authorKurt Spanier <ksp@openldap.org>
Mon, 29 Mar 1999 16:01:59 +0000 (16:01 +0000)
committerKurt Spanier <ksp@openldap.org>
Mon, 29 Mar 1999 16:01:59 +0000 (16:01 +0000)
libraries/libldbm/ldbm.c
servers/slapd/tools/ldbmcat.c
tests/scripts/test001-ldif2ldbm
tests/scripts/test001-slapadd

index 4c93207929e6eacfb219bfd4f885c7833ac24ffe..ba296978390ff7cb43ccf15d1ad2a7fd56fb7d88 100644 (file)
@@ -25,8 +25,7 @@ ldbm_datum_free( LDBM ldbm, Datum data )
 {
        if ( data.dptr ) {
                free( data.dptr );
-               data.dptr = NULL;
-               data.dsize = 0;
+               memset( &data, 0, sizeof( Datum ));
        }
 }
 
@@ -327,7 +326,6 @@ ldbm_firstkey( LDBM ldbm )
        if ( (*ldbm->cursor)( ldbm, NULL, &dbci, 0 ))
 #  endif
        {
-               key.flags = 0;
                key.dptr = NULL;
                return( key );
        } else {
@@ -336,7 +334,6 @@ ldbm_firstkey( LDBM ldbm )
                        ldbm_datum_free( ldbm, data );
                }
        else {
-               key.flags = 0;
 #else
        int     rc;
 
@@ -381,7 +378,6 @@ ldbm_nextkey( LDBM ldbm, Datum key )
                ldbm_datum_free( ldbm, data );
        }
        else {
-               key.flags = 0;
 #else
        int     rc;
 
index 5cb82466e1ae597be4b9ebc4fb18b79624ef05c1..0538001735d432e703471b39f64f7246dc5aa4be 100644 (file)
@@ -26,8 +26,6 @@ main( int argc, char **argv )
 
 #ifdef HAVE_BERKELEY_DB2
         DBC        *cursorp;
-
-               if ( ldbm_initialize() ) exit( 1 );
 #endif
 
         ldbm_datum_init( key );
@@ -60,8 +58,6 @@ main( int argc, char **argv )
             key = ldbm_nextkey( dbp, last ) )
 #endif
         {
-                ldbm_datum_free( dbp, last );
-
                 data = ldbm_fetch( dbp, key );
 
                 if (( s = data.dptr ) != NULL ) {
@@ -77,18 +73,17 @@ main( int argc, char **argv )
 
                     ldbm_datum_free( dbp, data );
 
-                }
+                } else {
+
+                               }
 
+                ldbm_datum_free( dbp, last );
                 last = key;
 
         }
         ldbm_datum_free( dbp, last );
         ldbm_close( dbp );
 
-#ifdef HAVE_BERKELEY_DB2
-               (void) ldbm_shutdown();
-#endif
-
         exit( 0 );
 
                return 0; /* NOT REACHED */
index 547aa830d392174e38ce82153bdf600234d63100..6ab1a5c52b7034a8c5be920560baa1caa772d995 100755 (executable)
@@ -28,7 +28,7 @@ if [ $RC != 0 ]; then
 fi
 
 echo "Starting slapd on TCP/IP port $PORT..."
-$SLAPD -f $CONF -p $PORT -a $ADDR -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Using ldapsearch to retrieve all the entries..."
index 547aa830d392174e38ce82153bdf600234d63100..6ab1a5c52b7034a8c5be920560baa1caa772d995 100755 (executable)
@@ -28,7 +28,7 @@ if [ $RC != 0 ]; then
 fi
 
 echo "Starting slapd on TCP/IP port $PORT..."
-$SLAPD -f $CONF -p $PORT -a $ADDR -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Using ldapsearch to retrieve all the entries..."