From e07045d9d16d17ce7ee53b99a337f8b8a886f293 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Sun, 29 Mar 2015 20:17:22 +0200 Subject: [PATCH] add extra validation on config object to prevent save of defective data --- src/opnsense/mvc/app/library/OPNsense/Core/Config.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/opnsense/mvc/app/library/OPNsense/Core/Config.php b/src/opnsense/mvc/app/library/OPNsense/Core/Config.php index c8f10a1a2..23c0ded02 100644 --- a/src/opnsense/mvc/app/library/OPNsense/Core/Config.php +++ b/src/opnsense/mvc/app/library/OPNsense/Core/Config.php @@ -140,6 +140,12 @@ class Config extends Singleton if ($node == null) { $this->simplexml = simplexml_load_string('<'.$this->simplexml[0]->getName().'/>'); $node = $this->simplexml ; + // invalidate object on warnings/errors (prevent save from happening) + set_error_handler( + function() { + $this->statusIsValid = false; + } + ); } foreach ($source as $itemKey => $itemValue) { @@ -166,6 +172,11 @@ class Config extends Singleton $childNode[0] = $itemValue; } } + + // restore error handling on initial call + if ($node == $this->simplexml) { + restore_error_handler(); + } } /**