mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-03 17:50:11 +02:00
Ensure package names are valid
This commit is contained in:
parent
fe7f6cfe50
commit
384f97e998
@ -1055,9 +1055,16 @@ def parse_androidmanifests(paths, ignoreversions=None):
|
||||
if max_version is None:
|
||||
max_version = "Unknown"
|
||||
|
||||
if not is_valid_package_name(max_package):
|
||||
raise FDroidException("Invalid package name {0}".format(max_package))
|
||||
|
||||
return (max_version, max_vercode, max_package)
|
||||
|
||||
|
||||
def is_valid_package_name(name):
|
||||
return re.match("[A-Za-z_][A-Za-z_0-9.]+$", name)
|
||||
|
||||
|
||||
class FDroidException(Exception):
|
||||
|
||||
def __init__(self, value, detail=None):
|
||||
|
@ -83,6 +83,17 @@ class CommonTest(unittest.TestCase):
|
||||
self.assertFalse(debuggable,
|
||||
"debuggable APK state was not properly parsed!")
|
||||
|
||||
def testPackageNameValidity(self):
|
||||
for name in ["org.fdroid.fdroid",
|
||||
"org.f_droid.fdr0ID"]:
|
||||
self.assertTrue(fdroidserver.common.is_valid_package_name(name),
|
||||
"{0} should be a valid package name".format(name))
|
||||
for name in ["0rg.fdroid.fdroid",
|
||||
".f_droid.fdr0ID",
|
||||
"org.fdroid/fdroid",
|
||||
"/org.fdroid.fdroid"]:
|
||||
self.assertFalse(fdroidserver.common.is_valid_package_name(name),
|
||||
"{0} should not be a valid package name".format(name))
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = optparse.OptionParser()
|
||||
|
Loading…
Reference in New Issue
Block a user