Hanno Böck commited on 2022-07-15 12:39:50
Zeige 1 geänderte Dateien mit 19 Einfügungen und 2 Löschungen.
... | ... |
@@ -41,6 +41,23 @@ def versioncompare(safe_version, find_version): |
41 | 41 |
return find_version_tup < safe_version_tup |
42 | 42 |
|
43 | 43 |
|
44 |
+def checkoldsafe(old_safe, find_version): |
|
45 |
+ find_version_tup = [int(x) for x in find_version.split(".")] |
|
46 |
+ for oldver in old_safe.split(","): |
|
47 |
+ oldver_tup = [int(x) for x in oldver.split(".")] |
|
48 |
+ |
|
49 |
+ if find_version_tup == oldver_tup: |
|
50 |
+ return True |
|
51 |
+ # handle special case where minor version is larger |
|
52 |
+ if ( |
|
53 |
+ len(find_version_tup) >= 2 |
|
54 |
+ and find_version_tup[:-1] == oldver_tup[:-1] |
|
55 |
+ and find_version_tup[-1] > oldver_tup[-1] |
|
56 |
+ ): |
|
57 |
+ return True |
|
58 |
+ return False |
|
59 |
+ |
|
60 |
+ |
|
44 | 61 |
def vulnprint(appname, version, safeversion, vuln, vfilename, subdir, |
45 | 62 |
xml): |
46 | 63 |
appdir = '/'.join(os.path.abspath(vfilename).split('/')[:-1 - subdir]) |
... | ... |
@@ -148,8 +165,8 @@ for fdir in opts.dirs: |
148 | 165 |
|
149 | 166 |
if (not versioncompare(item['safe'], findversion) |
150 | 167 |
or ('old_safe' in item |
151 |
- and findversion in |
|
152 |
- item['old_safe'].split(','))): |
|
168 |
+ and checkoldsafe(item['old_safe'], |
|
169 |
+ findversion))): |
|
153 | 170 |
if opts.all: |
154 | 171 |
vulnprint(item['name'], findversion, "ok", "", |
155 | 172 |
mfile, det['subdir'], opts.xml) |
156 | 173 |