]> git.sur5r.net Git - openldap/commitdiff
ITS#8289 fix mod Increment with inherited attr type
authorHoward Chu <hyc@openldap.org>
Tue, 27 Oct 2015 03:41:17 +0000 (03:41 +0000)
committerHoward Chu <hyc@openldap.org>
Tue, 27 Oct 2015 03:41:17 +0000 (03:41 +0000)
servers/slapd/mods.c

index 5c8ee547ff4d4645797ca031c2dadb132e98d9c2..763e2e377f89aa056779872f718f1c3c3b77ca8a 100644 (file)
@@ -388,6 +388,7 @@ modify_increment_values(
        char *textbuf, size_t textlen )
 {
        Attribute *a;
+       const char *syn_oid;
 
        a = attr_find( e->e_attrs, mod->sm_desc );
        if( a == NULL ) {
@@ -406,7 +407,8 @@ modify_increment_values(
                }
        }
 
-       if ( !strcmp( a->a_desc->ad_type->sat_syntax_oid, SLAPD_INTEGER_SYNTAX )) {
+       syn_oid = at_syntax( a->a_desc->ad_type );
+       if ( syn_oid && !strcmp( syn_oid, SLAPD_INTEGER_SYNTAX )) {
                int i;
                char str[sizeof(long)*3 + 2]; /* overly long */
                long incr;
@@ -446,7 +448,7 @@ modify_increment_values(
                snprintf( textbuf, textlen,
                        "modify/increment: %s: increment not supported for value syntax %s",
                        mod->sm_desc->ad_cname.bv_val,
-                       a->a_desc->ad_type->sat_syntax_oid );
+                       syn_oid ? syn_oid : "(NULL)" );
                return LDAP_CONSTRAINT_VIOLATION;
        }