From 5cab5956e35d8afa1cb60c5bc7de68ae43e68350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 3 Jun 2015 19:40:43 +0200 Subject: [PATCH] Don't accept non-integer vercodes --- fdroidserver/common.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/fdroidserver/common.py b/fdroidserver/common.py index bad39a00..33c89ea2 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -1024,7 +1024,9 @@ def parse_androidmanifests(paths, ignoreversions=None): if "{http://schemas.android.com/apk/res/android}versionName" in xml.attrib: version = xml.attrib["{http://schemas.android.com/apk/res/android}versionName"].encode('utf-8') if "{http://schemas.android.com/apk/res/android}versionCode" in xml.attrib: - vercode = xml.attrib["{http://schemas.android.com/apk/res/android}versionCode"].encode('utf-8') + a = xml.attrib["{http://schemas.android.com/apk/res/android}versionCode"].encode('utf-8') + if string_is_integer(a): + vercode = a logging.debug("..got package={0}, version={1}, vercode={2}" .format(package, version, vercode)) @@ -2055,3 +2057,11 @@ def write_to_config(thisconfig, key, value=None): def parse_xml(path): return XMLElementTree.parse(path).getroot() + + +def string_is_integer(string): + try: + int(string) + return True + except ValueError: + return False