lib/config: delay setting talloc destructor

If Xapian has thrown an exception, it is not safe to invoke the
destructor when freeing the list struct.
This commit is contained in:
David Bremner 2020-08-08 11:16:47 -03:00
parent 3b40978241
commit 43ba5ed7ec

View file

@ -133,8 +133,15 @@ notmuch_database_get_config_list (notmuch_database_t *notmuch,
*out = list;
DONE:
if (status && list)
talloc_free (list);
if (status) {
if (list) {
talloc_free (list);
if (status != NOTMUCH_STATUS_XAPIAN_EXCEPTION)
_notmuch_config_list_destroy (list);
}
} else {
talloc_set_destructor (list, _notmuch_config_list_destroy);
}
return status;
}