check whether metadata file is a duplicate before parsing it

By checking first, this prevents a stacktrace when the duplicate metadata
file is not valid.  For example, in the tests, the duplicate is just a zero
length file, which was causing a stacktrace.
This commit is contained in:
Hans-Christoph Steiner committed 2016-06-21 10:29:56 +02:00
1 parent 226237c5f7
commit 400acdefab
1 file changed
+3 -2
+3 -2
View File
@@ -783,9 +783,10 @@ def read_metadata(xref=True):
+ glob.glob('.fdroid.json')
+ glob.glob('.fdroid.xml')
+ glob.glob('.fdroid.yml')):
packageName, _ = fdroidserver.common.get_extension(os.path.basename(metadatapath))
if packageName in apps:
raise MetaDataException("Found multiple metadata files for " + packageName)
app = parse_metadata(metadatapath)
if app.id in apps:
raise MetaDataException("Found multiple metadata files for " + app.id)
check_metadata(app)
apps[app.id] = app