Summary: Error handling problems in the backend functions
https://bugzilla.redhat.com/show_bug.cgi?id=563365
[Description of problem]
1) Error handling in ldbm_back_{add,delete,modify,modrdn} functions was
incomplete. When any error occurs after the transaction begins, the changes
made after that should be aborted. There were some cases the abort was not
called.
2) If modrdn failed in ldbm_bacK_modrdn, new DN in the DN cache was not
removed.
[Proposed fix]
--> (
https://bugzilla.redhat.com/attachment.cgi?id=389871)
git patch file
[Files]
ldap/servers/slapd/back-ldbm/id2entry.c
ldap/servers/slapd/back-ldbm/ldbm_add.c
ldap/servers/slapd/back-ldbm/ldbm_delete.c
ldap/servers/slapd/back-ldbm/ldbm_modify.c
ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
ldap/servers/slapd/libglobs.c
[Fix Description]
1) Error handling in ldbm_back_{add,delete,modify,modrdn} functions was
incomplete. When any error occurs after the transaction begins, the
changes made after that should be aborted. There were some cases the
abort was not called.
2) If modrdn failed in ldbm_back_modrdn, new DN in the DN cache was not
removed.
3) config_set_instancedir in libglobs.c was missing the function type.