]> git.sur5r.net Git - openldap/commitdiff
Initialization of Datum structures to zero by memset() before first use.
authorKurt Spanier <ksp@openldap.org>
Fri, 18 Dec 1998 12:28:47 +0000 (12:28 +0000)
committerKurt Spanier <ksp@openldap.org>
Fri, 18 Dec 1998 12:28:47 +0000 (12:28 +0000)
If Berkeley DB version 2.x is used as a slapd back-end a not-initialized
Datum structure will raise an EINVAL error in (DB)->put().

servers/slapd/tools/centipede.c
servers/slapd/tools/ldbmcat.c
servers/slapd/tools/ldbmtest.c
servers/slapd/tools/ldif2id2children.c
servers/slapd/tools/ldif2id2entry.c
servers/slapd/tools/ldif2ldbm.c
servers/slapd/tools/sizecount.c

index 5cc275f8b1e3e499de5b10708791e468a1cdf62a..11e46ba469a071f6b88125a5102eaaebb498d7f3 100644 (file)
@@ -473,6 +473,8 @@ generate_new_centroids(
        char            **val;
        char            last;
 
+    memset( &data, 0 , sizeof( data ));
+
        if ( verbose ) {
                printf( "Generating new centroids for..." );
                fflush( stdout );
@@ -495,6 +497,9 @@ generate_new_centroids(
 
                        /* for each value */
                        for ( j = 0; val[j] != NULL; j++ ) {
+
+                memset( &key, 0 , sizeof( key ));
+
                                /* normalize the value */
                                for ( s = val[j]; *s; s++ ) {
                                        if ( isascii( *s ) ) {
@@ -570,6 +575,14 @@ diff_centroids(
                fflush( stdout );
        }
 
+    memset( &okey, 0, sizeof( okey ));
+    memset( &nkey, 0, sizeof( nkey ));
+    memset( &olast, 0, sizeof( olast ));
+    memset( &nlast, 0, sizeof( nlast ));
+    memset( &lastkey, 0, sizeof( lastkey ));
+    memset( &key, 0, sizeof( key ));
+    memset( &data, 0, sizeof( data ));
+
        if ( (mods = (LDAPMod **) malloc( sizeof(LDAPMod *) * 4 )) == NULL ||
             (mods[0] = (LDAPMod *) malloc( sizeof(LDAPMod) )) == NULL ||
             (mods[1] = (LDAPMod *) malloc( sizeof(LDAPMod) )) == NULL ||
@@ -832,6 +845,9 @@ full_centroid(
                fflush( stdout );
        }
 
+    memset( &key, 0, sizeof( key ));
+    memset( &lastkey, 0, sizeof( lastkey ));
+
        if ( (mods = (LDAPMod **) malloc( sizeof(LDAPMod *) * 3 )) == NULL ||
             (mods[0] = (LDAPMod *) malloc( sizeof(LDAPMod) )) == NULL ||
             (mods[1] = (LDAPMod *) malloc( sizeof(LDAPMod) )) == NULL ||
index ad058114476d8d35211d3947ba1f1e275bb8f2e5..40208ab86e84857affa4c20d71ab601acb48b3e8 100644 (file)
@@ -28,6 +28,10 @@ main( int argc, char **argv )
 
 #ifdef HAVE_BERKELEY_DB2
        DBC     *cursorp;
+
+    memset( &key, 0, sizeof( key ));
+    memset( &last, 0, sizeof( last ));
+    memset( &data, 0, sizeof( data ));
 #endif
 
        if ( argc < 2 || argc > 3 || ( argc == 3 && strcmp( argv[1], "-n" )
index 99fdee67c80bce435d58485e4e2cb45631a72d43..29faae99876f640426e63588cdc0b1a60b5f0d8b 100644 (file)
@@ -68,6 +68,11 @@ main( int argc, char **argv )
 
 #ifdef HAVE_BERKELEY_DB2
        DBC     *cursorp;
+
+    memset( &savekey, 0, sizeof( savekey ));
+    memset( &key, 0, sizeof( key ));
+    memset( &data, 0, sizeof( data ));
+    memset( &last, 0, sizeof( last ));
 #endif
 
        tailorfile = SLAPD_DEFAULT_CONFIGFILE;
index 30dffcf6882d7bbd53b5a43baef05f24cd00fdd4..cbe925f66610486458eb451befba21cae67ce653 100644 (file)
@@ -149,6 +149,9 @@ main( int argc, char **argv )
                int             vlen;
                Datum           key, data;
 
+        memset( &key, 0, sizeof( key ));
+        memset( &data, 0, sizeof( data ));
+
                if ( fgets( line, sizeof(line), stdin ) != NULL ) {
                        int     len;
 
@@ -232,6 +235,9 @@ main( int argc, char **argv )
                char    buf2[20];
                Datum   key, data;
 
+        memset( &key, 0, sizeof( key ));
+        memset( &data, 0, sizeof( data ));
+
                if ( fgets( line, sizeof(line), stdin ) != NULL ) {
                        int     len;
 
index 903c8b8d42c0a85513eea685f277e4827ca1a979..4ff3407d55c68e858998283771043523a5de97df 100644 (file)
@@ -141,6 +141,9 @@ main( int argc, char **argv )
                int             vlen;
                Datum           key, data;
 
+        memset( &key, 0, sizeof( key ));
+        memset( &data, 0, sizeof( data ));
+
                if ( fgets( line, sizeof(line), stdin ) != NULL ) {
                        int     len, idlen;
 
index 53c8fa008c9e14875aab5fcc848f29522648bb07..8ab191d7e09382afa59b0f6fa900c3180f17803a 100644 (file)
@@ -224,6 +224,9 @@ main( int argc, char **argv )
                int             vlen, indexmask, syntaxmask;
                Datum           key, data;
 
+        memset( &key, 0, sizeof( key ));
+        memset( &data, 0, sizeof( data ));
+
                if ( fgets( line, sizeof(line), stdin ) != NULL ) {
                        int     len;
 
index c88ff565c57c741f9697c958c074ebde6b2db8b4..74cb7a6b4fc82b5c26b52757c74c0581bc921824 100644 (file)
@@ -94,6 +94,9 @@ main( int argc, char **argv )
                                        Datum   key, data;
                                        char    *w;
 
+                    memset( &key, 0, sizeof( key ));
+                    memset( &data, 0, sizeof( data ));
+
                                        /* update value count */
                                        vcount++;
                                        vsize += bvals[j]->bv_len;
@@ -176,6 +179,9 @@ add(
 {
        Datum   key, data;
 
+    memset( &key, 0, sizeof( key ));
+    memset( &data, 0, sizeof( data ));
+
        key.dptr = s;
        key.dsize = strlen( key.dptr ) + 1;
        data.dptr = "";