Skip to content
Snippets Groups Projects
Commit 12f481d6 authored by Kurt Zeilenga's avatar Kurt Zeilenga
Browse files

Import patches mistakenly applied to OPENLDAP_DEVEL_REFERRALS.

ldap_modify: delete of last attribute value should delete attribute (ITS#229)
thr_nt: use sleep to yield
parent f92d01c2
No related branches found
No related tags found
No related merge requests found
......@@ -65,6 +65,7 @@ ldap_pvt_thread_kill( ldap_pvt_thread_t thread, int signo )
int
ldap_pvt_thread_yield( void )
{
Sleep( 0 );
return 0;
}
......
......@@ -355,6 +355,17 @@ bdb2i_delete_values(
a->a_vals[k - 1] = a->a_vals[k];
}
a->a_vals[k - 1] = NULL;
/* delete the entire attribute, if no values remain */
if ( a->a_vals[0] == NULL) {
Debug( LDAP_DEBUG_ARGS,
"removing entire attribute %s\n",
mod->mod_type, 0, 0 );
if ( attr_delete( &e->e_attrs, mod->mod_type ) ) {
return LDAP_NO_SUCH_ATTRIBUTE;
}
}
break;
}
......
......@@ -367,6 +367,17 @@ delete_values(
a->a_vals[k - 1] = a->a_vals[k];
}
a->a_vals[k - 1] = NULL;
/* delete the entire attribute, if no values remain */
if ( a->a_vals[0] == NULL) {
Debug( LDAP_DEBUG_ARGS,
"removing entire attribute %s\n",
mod->mod_type, 0, 0 );
if ( attr_delete( &e->e_attrs, mod->mod_type ) ) {
return LDAP_NO_SUCH_ATTRIBUTE;
}
}
break;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment