From aa8846bb101054392b81f09bade120c021695892 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Thu, 26 Jul 2018 08:02:01 +0200 Subject: [PATCH] ubus: avoid dumping interface state with NULL message Invoking ubus methods with NULL message is not supported anymore, so make sure that network.interface/dump is called with an empty blob buffer argument. Signed-off-by: Jo-Philipp Wich --- ubus.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ubus.c b/ubus.c index 7029d63..bea9166 100644 --- a/ubus.c +++ b/ubus.c @@ -45,13 +45,15 @@ fw3_ubus_connect(void) struct ubus_context *ctx = ubus_connect(NULL); struct blob_buf b = { }; + blob_buf_init(&b, 0); + if (!ctx) goto out; if (ubus_lookup_id(ctx, "network.interface", &id)) goto out; - if (ubus_invoke(ctx, id, "dump", NULL, dump_cb, NULL, 2000)) + if (ubus_invoke(ctx, id, "dump", b.head, dump_cb, NULL, 2000)) goto out; status = true; @@ -59,14 +61,15 @@ fw3_ubus_connect(void) if (ubus_lookup_id(ctx, "service", &id)) goto out; - blob_buf_init(&b, 0); blobmsg_add_string(&b, "type", "firewall"); ubus_invoke(ctx, id, "get_data", b.head, procd_data_cb, NULL, 2000); - blob_buf_free(&b); out: + blob_buf_free(&b); + if (ctx) ubus_free(ctx); + return status; } -- 2.25.1