mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
ITS#8266 Allow empty mods
This commit is contained in:
parent
207fde15eb
commit
46c85a32ae
@ -1170,6 +1170,11 @@ unique_modify(
|
||||
Debug(LDAP_DEBUG_TRACE, "==> unique_modify <%s>\n",
|
||||
op->o_req_dn.bv_val, 0, 0);
|
||||
|
||||
if ( !op->orm_modlist ) {
|
||||
Debug(LDAP_DEBUG_TRACE, "unique_modify: got empty modify op\n", 0, 0, 0);
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* skip the checks if the operation has manageDsaIt control in it
|
||||
* (for replication) */
|
||||
if ( op->o_managedsait > SLAP_CONTROL_IGNORED
|
||||
@ -1203,22 +1208,14 @@ unique_modify(
|
||||
&& !dnIsSuffix( &op->o_req_ndn, &uri->ndn ))
|
||||
continue;
|
||||
|
||||
if ( !(m = op->orm_modlist) ) {
|
||||
op->o_bd->bd_info = (BackendInfo *) on->on_info;
|
||||
send_ldap_error(op, rs, LDAP_INVALID_SYNTAX,
|
||||
"unique_modify() got null op.orm_modlist");
|
||||
rc = rs->sr_err;
|
||||
break;
|
||||
|
||||
} else
|
||||
for ( ; m; m = m->sml_next)
|
||||
if ( (m->sml_op & LDAP_MOD_OP)
|
||||
!= LDAP_MOD_DELETE )
|
||||
ks += count_filter_len
|
||||
( domain,
|
||||
uri,
|
||||
m->sml_desc,
|
||||
m->sml_values);
|
||||
for ( m = op->orm_modlist; m; m = m->sml_next)
|
||||
if ( (m->sml_op & LDAP_MOD_OP)
|
||||
!= LDAP_MOD_DELETE )
|
||||
ks += count_filter_len
|
||||
( domain,
|
||||
uri,
|
||||
m->sml_desc,
|
||||
m->sml_values);
|
||||
|
||||
/* skip this domain-uri if it isn't involved */
|
||||
if ( !ks ) continue;
|
||||
|
@ -555,6 +555,21 @@ if test $RC != 0 ; then
|
||||
exit -1
|
||||
fi
|
||||
|
||||
echo "Sending an empty modification"
|
||||
|
||||
$LDAPMODIFY -D "$UNIQUEDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
|
||||
$TESTOUT 2>&1 << EOF
|
||||
dn: uid=empty,ou=users,o=unique
|
||||
changetype: modify
|
||||
EOF
|
||||
|
||||
RC=$?
|
||||
if test $RC != 0 ; then
|
||||
echo "spurious unique error ($RC)!"
|
||||
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||
exit -1
|
||||
fi
|
||||
|
||||
echo "Making a record non-unique"
|
||||
$LDAPMODIFY -D "uid=dave,ou=users,o=unique" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
|
||||
$TESTOUT 2>&1 << EOF
|
||||
|
Loading…
Reference in New Issue
Block a user