ubus: fix legacy empty reply format
[project/uhttpd.git] / ubus.c
diff --git a/ubus.c b/ubus.c
index 39b38b2c9043df329de501a50d6f2c5cc573727c..cc7447e8f48bd3c6f661464adef8dfd76af4b229 100644 (file)
--- a/ubus.c
+++ b/ubus.c
@@ -465,10 +465,14 @@ uh_ubus_request_cb(struct ubus_request *req, int ret)
                uh_ubus_init_json_rpc_response(cl, &buf);
                r = blobmsg_open_array(&buf, "result");
                blobmsg_add_u32(&buf, "", ret);
-               c = blobmsg_open_table(&buf, NULL);
-               blob_for_each_attr(cur, du->buf.head, rem)
-                       blobmsg_add_blob(&buf, cur);
-               blobmsg_close_table(&buf, c);
+
+               if (blob_len(du->buf.head)) {
+                       c = blobmsg_open_table(&buf, NULL);
+                       blob_for_each_attr(cur, du->buf.head, rem)
+                               blobmsg_add_blob(&buf, cur);
+                       blobmsg_close_table(&buf, c);
+               }
+
                blobmsg_close_array(&buf, r);
                uh_ubus_send_response(cl, &buf);
                return;