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
commitdbefc9cd6cfb2ec95ce1ac6dc741d27d4f454a20 (patch)
treec1647f2e0343ef8ff09e0969ff44118ccc58c47a /bin/show-debsecan
parenta54b397ddffc7b38eb112a036e0bc508da410c5e (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