luci-base: fix empty reply format in ubus gateway fallback code

The ubus gateway fallback code incorrectly formatted ubus replies
containing no payload data when forwarding them via HTTP, leading
to `TypeError: Unexpected reply data format` errors in at least
the `luci.fs` class when receiving replies without payload.

Fix this issue by ensuring that the result array never contains
a `null` value for the payload, send an one-element array containing
just the status code in this case instead.

Fixes: #6074
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2022-11-03 11:27:52 +01:00
parent 4b1a074c95
commit 0dd0114a9d

View file

@ -23,8 +23,10 @@ function ubus_reply(id, data, code, errmsg) {
reply.error = { code, message: errmsg };
else if (type(code) == 'object')
reply.result = code;
else
else if (data != null)
reply.result = [ code, data ];
else
reply.result = [ code ];
return reply;
}