summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorPhil Davis <phil.davis@inf.org>2014-11-06 15:14:38 +0545
committerPhil Davis <phil.davis@inf.org>2014-11-06 15:14:38 +0545
commita68c678580a210a05c80873bfbdf58a703372b80 (patch)
tree5342bd5abda358d93411de069f27e6ea8f68c61d /etc
parenta012464eb42eebdf879fdf8df1824f9a1ecd30b6 (diff)
downloadpfsense-a68c678580a210a05c80873bfbdf58a703372b80.zip
pfsense-a68c678580a210a05c80873bfbdf58a703372b80.tar.gz
Fix to SMART disk matching
preg_match returns 0 when the string does not match the regex. 0 does not "===" FALSE So this check is not always working. preg_match returns 1 when the string matches the regex. IMO it is better to check for !== 1 - then anything that is not success (0 or false or...) will be unset.
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/util.inc3
1 files changed, 2 insertions, 1 deletions
diff --git a/etc/inc/util.inc b/etc/inc/util.inc
index dd6a818..e15cdd7 100644
--- a/etc/inc/util.inc
+++ b/etc/inc/util.inc
@@ -2080,7 +2080,8 @@ function get_smart_drive_list() {
$disk_list = explode(" ", get_single_sysctl("kern.disks"));
foreach ($disk_list as $id => $disk) {
// We only want certain kinds of disks for S.M.A.R.T.
- if (preg_match("/^(ad|da|ada).*[0-9]{1,2}$/", $disk) === FALSE) {
+ // 1 is a match, 0 is no match, False is any problem processing the regex
+ if (preg_match("/^(ad|da|ada).*[0-9]{1,2}$/", $disk) !== 1) {
unset($disk_list[$id]);
}
}
OpenPOWER on IntegriCloud