summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWojciech Jowsa <wojciech.jowsa@gmail.com>2020-11-15 10:19:17 +0100
committerDaniel Golle <daniel@makrotopia.org>2020-11-23 01:06:02 +0000
commitf53a63999784bcb7dc513e221f3f25dd3de2f35e (patch)
treeee0cfe7ed673858df5dd251066235fd5ee8bf797
parent14a3cb42047bd0c0f8d5713332b9b4516a505607 (diff)
downloaduhttpd2-f53a63999784bcb7dc513e221f3f25dd3de2f35e.tar.gz
ubus: fix uhttpd crash
Unregister ubus subscriber in notification remove callback. Without this call, uhttpd crashes when client tries to subscribe to the ubus object after the object was unregistred and registered again. It is bacuse the reference to ubus subscriber is not freed but the memory is cleared in the uh_request_done function. Signed-off-by: Wojciech Jowsa <wojciech.jowsa@gmail.com>
-rw-r--r--ubus.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/ubus.c b/ubus.c
index cc7447e..619135c 100644
--- a/ubus.c
+++ b/ubus.c
@@ -357,6 +357,8 @@ static void uh_ubus_subscription_notification_remove_cb(struct ubus_context *ctx
du = container_of(s, struct dispatch_ubus, sub);
cl = container_of(du, struct client, dispatch.ubus);
+ ubus_unregister_subscriber(ctx, &du->sub);
+
ops->request_done(cl);
}