From 32babe7069c2297ae8f2578e38762b3406bc84d7 Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Mon, 22 Apr 2024 22:28:58 +0200 Subject: [PATCH] luci-app-banip: handle json load errors * properly handle possible json load errors in try/catch blocks Signed-off-by: Dirk Brenken --- .../luci-static/resources/view/banip/overview.js | 16 +++++++++++++--- .../resources/view/banip/setreport.js | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js b/applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js index 5ebf25855d..c8c571f735 100644 --- a/applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js +++ b/applications/luci-app-banip/htdocs/luci-static/resources/view/banip/overview.js @@ -11,7 +11,7 @@ button handling */ function handleAction(ev) { - fs.exec_direct('/etc/init.d/banip', [ev]) + return fs.exec_direct('/etc/init.d/banip', [ev]) } return view.extend({ @@ -472,9 +472,19 @@ return view.extend({ let feed, feeds, descr; if (result[0]) { - feeds = JSON.parse(result[0]); + try { + feeds = JSON.parse(result[0]); + } catch (e) { + feeds = ""; + ui.addNotification(null, E('p', _('Unable to parse the custom feed file: %s').format(e.message)), 'error'); + } } else if (result[1]) { - feeds = JSON.parse(result[1]); + try { + feeds = JSON.parse(result[1]); + } catch (e) { + feeds = ""; + ui.addNotification(null, E('p', _('Unable to parse the default feed file: %s').format(e.message)), 'error'); + } } if (feeds) { o = s.taboption('adv_set', form.MultiValue, 'ban_blockinput', _('WAN-Input Chain'), _('Limit certain feeds to the WAN-Input chain.')); diff --git a/applications/luci-app-banip/htdocs/luci-static/resources/view/banip/setreport.js b/applications/luci-app-banip/htdocs/luci-static/resources/view/banip/setreport.js index a6f8ddc0fe..f313a5efd6 100644 --- a/applications/luci-app-banip/htdocs/luci-static/resources/view/banip/setreport.js +++ b/applications/luci-app-banip/htdocs/luci-static/resources/view/banip/setreport.js @@ -66,7 +66,12 @@ function handleAction(report, ev) { let content, selectOption; if (report[1]) { - content = JSON.parse(report[1]); + try { + content = JSON.parse(report[1]); + } catch (e) { + content = ""; + ui.addNotification(null, E('p', _('Unable to parse the ruleset file: %s').format(e.message)), 'error'); + } } else { content = ""; } @@ -140,7 +145,12 @@ return view.extend({ let content, rowSets, tblSets; if (report[0]) { - content = JSON.parse(report[0]); + try { + content = JSON.parse(report[0]); + } catch (e) { + content = ""; + ui.addNotification(null, E('p', _('Unable to parse the report file: %s').format(e.message)), 'error'); + } } else { content = ""; } -- 2.30.2