From e702d4e1ddc84b1e8bd63daa7a365bbadbc1861b Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Thu, 13 Mar 2025 13:49:15 +0100 Subject: [PATCH] Firewall: Aliases - rename action ignored due to missing lock, closes https://github.com/opnsense/core/issues/8432 --- .../OPNsense/Firewall/Api/AliasController.php | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasController.php b/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasController.php index 926806ba2..23f7971b2 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasController.php @@ -138,18 +138,16 @@ class AliasController extends ApiMutableModelControllerBase */ public function setItemAction($uuid) { - $node = $this->getModel()->getNodeByReference('aliases.alias.' . $uuid); - $old_name = $node != null ? (string)$node->name : null; - if ( - $old_name !== null && - $this->request->isPost() && - $this->request->hasPost("alias") && - !empty($this->request->getPost("alias")['name']) - ) { - $new_name = $this->request->getPost("alias")['name']; - if ($new_name != $old_name) { - // replace aliases, setBase() will synchronise the changes to disk - $this->getModel()->refactor($old_name, $new_name); + if ($this->request->isPost() && $this->request->hasPost("alias")) { + Config::getInstance()->lock(); + $node = $this->getModel()->getNodeByReference('aliases.alias.' . $uuid); + $old_name = $node != null ? (string)$node->name : null; + if ($old_name !== null && !empty($this->request->getPost("alias")['name'])) { + $new_name = $this->request->getPost("alias")['name']; + if ($new_name != $old_name) { + // replace aliases, setBase() will synchronise the changes to disk + $this->getModel()->refactor($old_name, $new_name); + } } } return $this->setBase("alias", "aliases.alias", $uuid);