]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/schema_init.c
ITS#7746 fix for cert with NULL issuerDN
[openldap] / servers / slapd / schema_init.c
index d1cb3ba648bf6fe711e87900052651050c366986..d4f5024b305be56a9a5f9be15f162fe580727455 100644 (file)
@@ -3713,12 +3713,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;
@@ -6384,7 +6386,9 @@ char *componentFilterMatchSyntaxes[] = {
 #endif
 
 char *directoryStringSyntaxes[] = {
+       "1.3.6.1.4.1.1466.115.121.1.11" /* countryString */,
        "1.3.6.1.4.1.1466.115.121.1.44" /* printableString */,
+       "1.3.6.1.4.1.1466.115.121.1.50" /* telephoneNumber */,
        NULL
 };
 char *integerFirstComponentMatchSyntaxes[] = {