]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/schema_init.c
Cleanup
[openldap] / servers / slapd / schema_init.c
index b1e06e7b7f80dd82b991a7aaac7678b9cc27592c..55fc2fa8888127464fae42dd5fbb0a67cff5ff17 100644 (file)
@@ -353,7 +353,7 @@ certificateListValidate( Syntax *syntax, struct berval *in )
        /* Must be at end now */
        /* NOTE: OpenSSL tolerates CL with garbage past the end */
        if ( len || tag != LBER_DEFAULT ) {
-               struct berval issuer_dn, thisUpdate;
+               struct berval issuer_dn = BER_BVNULL, thisUpdate;
                char tubuf[STRLENOF("YYYYmmddHHMMSSZ") + 1];
                int rc;
 
@@ -379,7 +379,9 @@ certificateListValidate( Syntax *syntax, struct berval *in )
                        issuer_dn.bv_val, thisUpdate.bv_val, 0 );
 
 done:;
-               ber_memfree( issuer_dn.bv_val );
+               if ( ! BER_BVISNULL( &issuer_dn ) ) {
+                       ber_memfree( issuer_dn.bv_val );
+               }
 
                return rc;
        }
@@ -2263,7 +2265,7 @@ postalAddressNormalize(
 
        p = normalized->bv_val;
        for ( l = 0; !BER_BVISNULL( &nlines[l] ); l++ ) {
-               p = lutil_strncopy( p, nlines[l].bv_val, nlines[l].bv_len );
+               p = lutil_memcopy( p, nlines[l].bv_val, nlines[l].bv_len );
 
                *p++ = '$';
        }
@@ -3663,6 +3665,9 @@ checkTime( struct berval *in, struct berval *out )
 
        rc = generalizedTimeValidate( NULL, &bv );
        if ( rc == LDAP_SUCCESS && out != NULL ) {
+               if ( out->bv_len > bv.bv_len ) {
+                       out->bv_val[ bv.bv_len ] = '\0';
+               }
                out->bv_len = bv.bv_len;
        }