mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-15 03:01:09 +08:00
Allow replace with no values
dn: cn=foo changetype: modify replace: bar -
This commit is contained in:
parent
5c5be8a287
commit
9d6c0aa00a
@ -463,6 +463,7 @@ process_ldif_rec( char *rbuf, int count )
|
||||
goto end_line;
|
||||
} else if ( strcasecmp( type, T_MODOPREPLACESTR ) == 0 ) {
|
||||
modop = LDAP_MOD_REPLACE;
|
||||
addmodifyop( &pmods, modop, value, NULL, 0 );
|
||||
goto end_line;
|
||||
} else if ( strcasecmp( type, T_MODOPDELETESTR ) == 0 ) {
|
||||
modop = LDAP_MOD_DELETE;
|
||||
|
@ -124,6 +124,9 @@ do_modify(
|
||||
(*modtail)->ml_op != LDAP_MOD_DELETE &&
|
||||
(*modtail)->ml_op != LDAP_MOD_REPLACE )
|
||||
{
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"do_modify: invalid modify operation (%ld)\n",
|
||||
(long) (*modtail)->ml_op, 0, 0 );
|
||||
send_ldap_result( conn, op, LDAP_PROTOCOL_ERROR,
|
||||
NULL, "unrecognized modify operation", NULL, NULL );
|
||||
free( ndn );
|
||||
@ -131,11 +134,16 @@ do_modify(
|
||||
return LDAP_PROTOCOL_ERROR;
|
||||
}
|
||||
|
||||
if ( (*modtail)->ml_bvalues == NULL
|
||||
&& (*modtail)->ml_op != LDAP_MOD_DELETE )
|
||||
if ( (*modtail)->ml_bvalues == NULL && (
|
||||
(*modtail)->ml_op != LDAP_MOD_REPLACE &&
|
||||
(*modtail)->ml_op != LDAP_MOD_DELETE ) )
|
||||
{
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"do_modify: invalid modify operation (%ld) without values\n",
|
||||
(long) (*modtail)->ml_op, 0, 0 );
|
||||
send_ldap_result( conn, op, LDAP_PROTOCOL_ERROR,
|
||||
NULL, "unrecognized modify operation", NULL, NULL );
|
||||
NULL, "unrecognized modify operation without values",
|
||||
NULL, NULL );
|
||||
free( ndn );
|
||||
modlist_free( modlist );
|
||||
return LDAP_PROTOCOL_ERROR;
|
||||
|
Loading…
Reference in New Issue
Block a user