summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorrbgarga <garga@FreeBSD.org>2013-04-11 04:02:42 -0700
committerrbgarga <garga@FreeBSD.org>2013-04-11 04:02:42 -0700
commit6bd86189522c10de0f02e200a23faccf2dee4504 (patch)
treea1b1b38b6571e524f0cabf9c427498b4ebf7a125 /etc
parente6dc5127634545898ebee79bd6b3e23faa7a944a (diff)
parentf8c8d65cc176fe779f5483223e5e8387303e1a8f (diff)
downloadpfsense-6bd86189522c10de0f02e200a23faccf2dee4504.zip
pfsense-6bd86189522c10de0f02e200a23faccf2dee4504.tar.gz
Merge pull request #466 from stilez/master
Fix issue in version_compare that can cause versions to be wrongly marked incompatible
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/pfsense-utils.inc10
1 files changed, 8 insertions, 2 deletions
diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc
index 7c64d2f..7c53885 100644
--- a/etc/inc/pfsense-utils.inc
+++ b/etc/inc/pfsense-utils.inc
@@ -1933,7 +1933,8 @@ function version_get_string_value($a) {
5 => "C",
6 => "D",
7 => "RC",
- 8 => "RELEASE"
+ 8 => "RELEASE",
+ 9 => "*" // Matches all release levels
);
$major = 0;
$minor = 0;
@@ -1949,7 +1950,12 @@ function version_get_string_value($a) {
return "{$major}.{$minor}";
}
function version_compare_string($a, $b) {
- return version_compare_numeric(version_get_string_value($a), version_get_string_value($b));
+ // Only compare string parts if both versions give a specific release
+ // (If either version lacks a string part, assume intended to match all release levels)
+ if (isset($a) && isset($b))
+ return version_compare_numeric(version_get_string_value($a), version_get_string_value($b));
+ else
+ return 0;
}
function version_compare_numeric($a, $b) {
$a_arr = explode('.', rtrim($a, '.0'));
OpenPOWER on IntegriCloud