diff mbox series

[uhttpd] fix compiler uninitialized variable

Message ID 45155108fd174fe78b66b94d38f8aeb6@db2.ad.hs-nordhausen.de
State Accepted
Delegated to: Petr Štetiar
Headers show
Series [uhttpd] fix compiler uninitialized variable | expand

Commit Message

Thomas Huehn Sept. 27, 2021, 11:59 p.m. UTC
In file included from ubus.c:20:
ubus.c: In function 'uh_ubus_list_cb':
libubox/blobmsg.h:256:9: error: 'o' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  256 |         blob_nest_end(buf, cookie);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
ubus.c:591:19: note: 'o' was declared here
  591 |         void *t, *o;
      |                   ^
cc1: all warnings being treated as errors

Signed-off-by: Thomas Huehn <thomas.huehn@hs-nordhausen.de>
Acked-by: Alexander Couzens <lynxis@fe80.eu>
---
 ubus.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/ubus.c b/ubus.c
index 619135c..99cc400 100644
--- a/ubus.c
+++ b/ubus.c
@@ -588,7 +588,7 @@  static void uh_ubus_list_cb(struct ubus_context *ctx, struct ubus_object_data *o
 	struct blob_attr *sig, *attr;
 	struct list_data *data = priv;
 	int rem, rem2;
-	void *t, *o;
+	void *t, *o=NULL;
 
 	if (!data->verbose) {
 		blobmsg_add_string(data->buf, NULL, obj->path);
@@ -598,8 +598,12 @@  static void uh_ubus_list_cb(struct ubus_context *ctx, struct ubus_object_data *o
 	if (!obj->signature)
 		return;
 
-	if (data->add_object)
+	if (data->add_object) {
 		o = blobmsg_open_table(data->buf, obj->path);
+		if (!o)
+			return;
+	}
+
 	blob_for_each_attr(sig, obj->signature, rem) {
 		t = blobmsg_open_table(data->buf, blobmsg_name(sig));
 		rem2 = blobmsg_data_len(sig);
@@ -630,6 +634,7 @@  static void uh_ubus_list_cb(struct ubus_context *ctx, struct ubus_object_data *o
 		}
 		blobmsg_close_table(data->buf, t);
 	}
+
 	if (data->add_object)
 		blobmsg_close_table(data->buf, o);
 }