]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldbm/modify.c
Fix -USLAPD_RLOOKUPS
[openldap] / servers / slapd / back-ldbm / modify.c
index d9e9b8ed4c9b2e7935f8d47d037c9e886690ab0a..b5fc2c19a91b719cd2123f2b2f8dbc38cc6aa66b 100644 (file)
@@ -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;
                }