[oe-commits] Holger Hans Peter Freyther : oe_audit.py: Print only vulnerabe software

git version control git at git.openembedded.org
Tue Mar 16 12:35:45 UTC 2010


Module: openembedded.git
Branch: shr/unstable
Commit: 690e114ba85eec8693957d204079d9b770ffec5c
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=690e114ba85eec8693957d204079d9b770ffec5c

Author: Holger Hans Peter Freyther <zecke at selfish.org>
Date:   Tue Mar 16 11:07:41 2010 +0100

oe_audit.py: Print only vulnerabe software

---

 contrib/qa/oe_audit.py |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/contrib/qa/oe_audit.py b/contrib/qa/oe_audit.py
index 7165802..6a820cd 100755
--- a/contrib/qa/oe_audit.py
+++ b/contrib/qa/oe_audit.py
@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 
+import bb
+
 def read_available(filename):
     """
     Parses the output of bitbake -s
@@ -212,6 +214,8 @@ def strip_bsd_version(bsd_version):
     FreeBSD is adding ,1 for revisions.. remove that
     """
     split = bsd_version.rsplit(',', 1)
+    split = split[0]
+    split = split.rsplit('_', 1)
     return split[0]
 
 def compare_versions(oe, freebsd, not_known):
@@ -223,11 +227,37 @@ def compare_versions(oe, freebsd, not_known):
 
         oe_version = strip_oe_version(oe[oe_name])
         for ver in freebsd[bsd_name]:
+            affected = True
             str = []
             for (cmp, vers) in ver.versions:
                 bsd_ver = strip_bsd_version(vers)
+                cmp_res = bb.utils.vercmp(('0', oe_version, 'r0'), ('0', bsd_ver, 'r0'))
+                if cmp == '<':
+                    if cmp_res >= 0:
+                        affected = False
+                    pass
+                elif cmp == '<=':
+                    if cmp_res > 0:
+                        affected = False
+                    pass
+                elif cmp == '>':
+                    if cmp_res <= 0:
+                        affected = False
+                    pass
+                elif cmp == '>=':
+                    if cmp_res < 0:
+                        affected = False
+                    pass
+                elif cmp == '=':
+                    if cmp_res > 0:
+                        affected = False
+                else:
+                    print cmp
+                    assert True
+
                 str.append("%s %s %s %s" % (oe_name, oe_version, cmp, bsd_ver))
-            print " && ".join(str), ver.link
+            if affected:
+                print " && ".join(str), ver.link
 
     for package in freebsd.keys():
         # handle the various versions of OE packages





More information about the Openembedded-commits mailing list