+ /* transfer ownership of access->name to a local, to retain the name
+ * to pass to a delete hook, while the access-list is deleted
+ *
+ * It is important that access-lists that are deleted, or are in process
+ * of being deleted, are not visible via access_list_lookup. This is
+ * because some (all?) users process the delete_hook callback the same
+ * as an add - they simply refresh all their access_list name references
+ * by looking up the name.
+ *
+ * If an access list can be looked up while being deleted, such users will
+ * not remove an access-list, and will keep dangling references to
+ * freed access lists.
+ */
+ char *name = access->name;
+ access->name = NULL;
+