]> git.ipfire.org Git - thirdparty/suricata-update.git/commitdiff
checkversions: fix wrong version checks
authorShivani Bhardwaj <shivanib134@gmail.com>
Wed, 29 Dec 2021 10:53:57 +0000 (16:23 +0530)
committerJason Ish <jason.ish@oisf.net>
Mon, 28 Mar 2022 22:22:16 +0000 (16:22 -0600)
Ticket 4373

suricata/update/commands/checkversions.py

index 98a0f3857306c5f2894d3747ab46a1bf823421b7..3492317021d80de6af54f0793c3eb806b841c9e8 100644 (file)
@@ -21,6 +21,26 @@ from suricata.update import sources, engine
 logger = logging.getLogger()
 
 
+def is_gt(v1, v2):
+    if v1.full == v2.full:
+        return False
+
+    if v1.major < v2.major:
+        return False
+    elif v1.major > v2.major:
+        return True
+
+    if v1.minor < v2.minor:
+        return False
+    elif v1.minor > v2.minor:
+        return True
+
+    if v1.patch < v2.patch:
+        return False
+
+    return True
+
+
 def register(parser):
     parser.set_defaults(func=check_version)
 
@@ -42,7 +62,7 @@ def check_version(suricata_version):
         logger.error("Recommended version was not parsed properly")
         sys.exit(1)
     # In case index is out of date
-    if float(suricata_version.short) > float(recommended.short):
+    if is_gt(suricata_version, recommended):
         return
     # Evaluate if the installed version is present in index
     upgrade_version = version["suricata"].get(suricata_version.short)