items are added to the linked attribute list using DLIST_ADD(), which
means to commit them to the database in the same order they came from
the server we need to walk the list backwards when we traverse it
talloc_get_type(ldb_module_get_private(module), struct la_private);
struct la_context *ac;
- for (ac=la_private->la_list; ac; ac=ac->next) {
+ /* walk the list backwards, to do the first entry first, as we
+ * added the entries with DLIST_ADD() which puts them at the
+ * start of the list */
+ for (ac = la_private->la_list; ac && ac->next; ac=ac->next) ;
+
+ for (; ac; ac=ac->prev) {
int ret;
ac->req = NULL;
ret = la_do_mod_request(module, ac);