]> git.sur5r.net Git - openldap/commitdiff
ITS#7746 fix for cert with NULL issuerDN
authorHoward Chu <hyc@openldap.org>
Thu, 14 Nov 2013 11:02:07 +0000 (03:02 -0800)
committerQuanah Gibson-Mount <quanah@openldap.org>
Thu, 14 Nov 2013 16:42:19 +0000 (08:42 -0800)
servers/slapd/schema_init.c

index 77b8760a08361e000b94130f44bbab9e7bb7bd61..0e130fc0d12424396278f349556af52d4dda52dd 100644 (file)
@@ -3668,12 +3668,14 @@ certificateExactNormalize(
        tag = ber_skip_tag( ber, &len );        /* SignatureAlg */
        ber_skip_data( ber, len );
        tag = ber_peek_tag( ber, &len );        /* IssuerDN */
-       len = ber_ptrlen( ber );
-       bvdn.bv_val = val->bv_val + len;
-       bvdn.bv_len = val->bv_len - len;
+       if ( len ) {
+               len = ber_ptrlen( ber );
+               bvdn.bv_val = val->bv_val + len;
+               bvdn.bv_len = val->bv_len - len;
 
-       rc = dnX509normalize( &bvdn, &issuer_dn );
-       if ( rc != LDAP_SUCCESS ) goto done;
+               rc = dnX509normalize( &bvdn, &issuer_dn );
+               if ( rc != LDAP_SUCCESS ) goto done;
+       }
 
        normalized->bv_len = STRLENOF( "{ serialNumber , issuer rdnSequence:\"\" }" )
                + sn2.bv_len + issuer_dn.bv_len;