summaryrefslogtreecommitdiffstats
path: root/bin/show-debsecan
diff options
context:
space:
mode:
authorFlorian Weimer <fw@deneb.enyo.de>2008-12-05 19:10:23 +0000
committerFlorian Weimer <fw@deneb.enyo.de>2008-12-05 19:10:23 +0000
commit125d1a482329b8581d29fd943178a06e31b0bc2b (patch)
tree2cf8178cee0dac1e3dd1ce36efc7229249bf6320 /bin/show-debsecan
parent9455d0c2c873343c5649a11af88c93ebba17eaa0 (diff)
bin/show-debsecan: new script to debug debsecan data
git-svn-id: svn+ssh://svn.debian.org/svn/secure-testing@10628 e39458fd-73e7-0310-bf30-c45bca0a0e42
Diffstat (limited to 'bin/show-debsecan')
-rw-r--r--bin/show-debsecan55
1 files changed, 55 insertions, 0 deletions
diff --git a/bin/show-debsecan b/bin/show-debsecan
new file mode 100644
index 0000000000..c801aabfd3
--- /dev/null
+++ b/bin/show-debsecan
@@ -0,0 +1,55 @@
+#!/usr/bin/python
+
+import sys
+import apsw
+import base64
+import zlib
+from cStringIO import StringIO
+
+if len(sys.argv) not in (2, 3):
+ print "usage: show-debsecan DATABASE-PATH [BLOB-NAME]"
+ sys.exit(1)
+
+db = apsw.Connection(sys.argv[1])
+c = db.cursor()
+
+if len(sys.argv) == 2:
+ for (name,) in c.execute("SELECT name FROM debsecan_data ORDER BY name"):
+ print name
+else: # len(sys.argv) == 3
+ name = sys.argv[2]
+ for (data,) in c.execute("SELECT data FROM debsecan_data WHERE name = ?",
+ (name,)):
+ pass
+ data = base64.b64decode(data)
+ data = zlib.decompress(data)
+
+ # The following has been taken from a debsecan test case.
+ data = StringIO(data)
+
+ if data.readline() <> "VERSION 1\n":
+ sys.stderr.write("error: server sends data in unknown format\n")
+ sys.exit(1)
+
+ vuln_names = []
+ for line in data:
+ if line[-1:] == '\n':
+ line = line[:-1]
+ if line == '':
+ break
+ (name, flags, desc) = line.split(',', 2)
+ vuln_names.append(name)
+
+ for line in data:
+ if line[-1:] == '\n':
+ line = line[:-1]
+ if line == '':
+ break
+ (package, vuln, rest) = line.split(',', 2)
+ vuln = vuln_names[int(vuln)]
+ print "%s,%s,%s" % (package, vuln, rest)
+
+ for line in data:
+ print line,
+
+db.close()

© 2014-2024 Faster IT GmbH | imprint | privacy policy