luci-app-olsr: handle empty result for non-status tables 1735/head
authorLars Kruse <lists@sumpfralle.de>
Sat, 7 Apr 2018 16:05:51 +0000 (18:05 +0200)
committerLars Kruse <lists@sumpfralle.de>
Fri, 2 Aug 2019 20:31:03 +0000 (22:31 +0200)
The response of the jsoninfo request may be non-empty (e.g. a linebreak
or just whitespace), but still yield "nil" after "json.decode".
This situation was already handled for the "status" request, but it
leads to a dictionary access against a "nil" value for all other tables.

Signed-off-by: Lars Kruse <lists@sumpfralle.de>
applications/luci-app-olsr/luasrc/controller/olsr.lua

index 11e27d7c00e83e278236a6573812a9ca6b50f22f..75463d405cff2d9d6cd3e6a836139398f02903ae 100644 (file)
@@ -379,9 +379,9 @@ function fetch_jsoninfo(otable)
 
        if jsonreq4 ~= "" then
                has_v4 = 1
-               jsondata4 = json.decode(jsonreq4)
+               jsondata4 = json.decode(jsonreq4) or {}
                if otable == 'status' then
-                       data4 = jsondata4 or {}
+                       data4 = jsondata4
                else
                        data4 = jsondata4[otable] or {}
                end
@@ -393,9 +393,9 @@ function fetch_jsoninfo(otable)
        end
        if jsonreq6 ~= "" then
                has_v6 = 1
-               jsondata6 = json.decode(jsonreq6)
+               jsondata6 = json.decode(jsonreq6) or {}
                if otable == 'status' then
-                       data6 = jsondata6 or {}
+                       data6 = jsondata6
                else
                        data6 = jsondata6[otable] or {}
                end