From f55c828e23c3c112baf1cf5cee7dbcbe5ae37e12 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Mon, 5 Dec 2022 17:56:21 +0100 Subject: [PATCH] MVC / bootgrid - similar issue as https://github.com/opnsense/core/commit/926a4c8e68f9f826cc075218dbb112832c3ae356 for a couple of MVC components, when POST sends an empty array, we should handle that properly. --- .../OPNsense/Diagnostics/Api/FirewallController.php | 12 ++++++++++-- .../OPNsense/Firewall/Api/AliasUtilController.php | 6 +++++- .../OPNsense/IDS/Api/SettingsController.php | 6 +++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/FirewallController.php b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/FirewallController.php index e400360ce..ecaa8e991 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/FirewallController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/FirewallController.php @@ -177,7 +177,11 @@ class FirewallController extends ApiControllerBase if ($this->request->getPost('searchPhrase', 'string', '') != '') { $searchPhrase = $filter->sanitize($this->request->getPost('searchPhrase'), 'query'); } - if ($this->request->has('sort') && is_array($this->request->getPost("sort"))) { + if ( + $this->request->has('sort') && + is_array($this->request->getPost("sort")) && + !empty($this->request->getPost("sort")) + ) { $tmp = array_keys($this->request->getPost("sort")); $sortBy = $tmp[0] . " " . $this->request->getPost("sort")[$tmp[0]]; } @@ -231,7 +235,11 @@ class FirewallController extends ApiControllerBase if ($this->request->getPost('searchPhrase', 'string', '') != '') { $searchPhrase = $filter->sanitize($this->request->getPost('searchPhrase'), 'query'); } - if ($this->request->has('sort') && is_array($this->request->getPost("sort"))) { + if ( + $this->request->has('sort') && + is_array($this->request->getPost("sort")) && + !empty($this->request->getPost("sort")) + ) { $tmp = array_keys($this->request->getPost("sort")); $sortBy = $tmp[0] . " " . $this->request->getPost("sort")[$tmp[0]]; } diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasUtilController.php b/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasUtilController.php index 88e396e92..428e422a2 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasUtilController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasUtilController.php @@ -117,7 +117,11 @@ class AliasUtilController extends ApiControllerBase return $item; }, $entry_keys); - if ($this->request->hasPost('sort') && is_array($this->request->getPost('sort'))) { + if ( + $this->request->hasPost('sort') && + is_array($this->request->getPost('sort')) && + !empty($this->request->getPost('sort')) + ) { $sortcolumn = array_key_first($this->request->getPost('sort')); $sort_order = $this->request->getPost('sort')[$sortcolumn]; if (!empty(array_column($formatted_full, $sortcolumn))) { diff --git a/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/SettingsController.php b/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/SettingsController.php index de7745e04..9bf8eb0e9 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/SettingsController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/IDS/Api/SettingsController.php @@ -79,7 +79,11 @@ class SettingsController extends ApiMutableModelControllerBase $itemsPerPage = $this->request->getPost('rowCount', 'int', 9999); $currentPage = $this->request->getPost('current', 'int', 1); - if ($this->request->hasPost('sort') && is_array($this->request->getPost("sort"))) { + if ( + $this->request->hasPost('sort') && + is_array($this->request->getPost("sort")) && + !empty($this->request->getPost("sort")) + ) { $sortStr = ''; $sortBy = array_keys($this->request->getPost("sort")); if ($this->request->getPost("sort")[$sortBy[0]] == "desc") {