Re-order UBus teardown logic.

When destroying the UBus context, private fields of our ubus_object were
being reset to 0 while UBus was still owning those objects. While this
seems to work out fine, it seems cleaner to first release the object so
that UBus no longer owns it, before proceding to reset those fields.

Signed-off-by: Etan Kissling <etan.kissling@gmail.com>
This commit is contained in:
Etan Kissling
2021-07-22 11:41:28 +00:00
committed by Simon Kelley
parent 8e9bde57c5
commit 82de7a1e96

View File

@@ -81,12 +81,12 @@ static void ubus_subscribe_cb(struct ubus_context *ctx, struct ubus_object *obj)
static void ubus_destroy(struct ubus_context *ubus) static void ubus_destroy(struct ubus_context *ubus)
{ {
ubus_free(ubus);
daemon->ubus = NULL;
// Forces re-initialization when we're reusing the same definitions later on. // Forces re-initialization when we're reusing the same definitions later on.
ubus_object.id = 0; ubus_object.id = 0;
ubus_object_type.id = 0; ubus_object_type.id = 0;
ubus_free(ubus);
daemon->ubus = NULL;
} }
static void ubus_disconnect_cb(struct ubus_context *ubus) static void ubus_disconnect_cb(struct ubus_context *ubus)