On Mittwoch, 30. Januar 2008, h.b.furuseth@usit.uio.no wrote: [..]
back-config crashes if I delete some attribute, even some which does not exist, and then olcAttributeOptions:
bash$ cat slapd.conf include servers/slapd/schema/core.schema database config rootdn cn=config rootpw secret
bash$ ldapmodify -xh:3890 -Dcn=config -wsecret dn: cn=config changetype: modify # or use "delete: o" delete: olcAllows
delete: olcAttributeOptions olcAttributeOptions: foo
Crash in bconfig.c:config_modify_internal line 4843 because d == NULL: 4842 if ( ml->sml_values ) { 4843 d = d->next; 4844 ch_free( dels ); 4845 dels = d; 4846 }
[..]
This should be fixed in HEAD now. The code did not check the return code of modify_delete_vindex() for failures.
Also the error message from deleting just olcAttributeOptions is bad:
bash$ ldapmodify -xh:3890 -Dcn=config -wsecret dn: cn=config changetype: modify replace: olcAttributeOptions olcAttributeOptions: foo
ldap_modify: Internal (implementation specific) error (80) additional info: modify/delete: modifyTimestamp: no such attribute modifying entry "cn=config"
Finally "replace:" only needs to fail if there are options to delete, not if one adds a line with just "attributeOptions" to slapd.conf. That removes the default, "lang-".
Haven't looked into this yet.