chiark / gitweb /
Fix multiple errors in get_mime_type
authorCiaran Gultnieks <ciaran@ciarang.com>
Thu, 13 Aug 2015 17:16:28 +0000 (19:16 +0200)
committerCiaran Gultnieks <ciaran@ciarang.com>
Thu, 13 Aug 2015 17:16:28 +0000 (19:16 +0200)
Closes #111

fdroidserver/common.py

index 7b2aa0875156074e4fec3cd9477e77324787f9de..e775e846bea05bef1a4e4b24d53c37517c2fa6b7 100644 (file)
@@ -1452,23 +1452,25 @@ def get_mime_type(path):
     libmagic. Hence this function with the following hacks:
     '''
 
+    ms = None
     try:
         import magic
-        ms = None
         try:
             ms = magic.open(magic.MIME_TYPE)
             ms.load()
-            return magic.from_file(path, mime=True)
+            result = magic.from_file(path, mime=True)
         except AttributeError:
-            return ms.file(path)
-        if ms is not None:
-            ms.close()
+            result = ms.file(path)
     except UnicodeError:
         logging.warn('Found malformed magic number at %s' % path)
+        result = None
     except ImportError:
         import mimetypes
         mimetypes.init()
-        return mimetypes.guess_type(path, strict=False)
+        result = mimetypes.guess_type(path, strict=False)
+    if ms is not None:
+        ms.close()
+    return result
 
 
 # Scan the source code in the given directory (and all subdirectories)