chiark / gitweb /
scanner: Ignore certain binary executable files
authorDaniel Martí <mvdan@mvdan.cc>
Tue, 10 Nov 2015 20:59:54 +0000 (21:59 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Tue, 10 Nov 2015 20:59:54 +0000 (21:59 +0100)
These were warnings, so the behaviour doesn't really change.

fdroidserver/scanner.py

index 092c23ec4db12c880580426a5b8ad9c5cf7964e7..e4b405ba28a13c715b76ac85687bbe0584048be9 100644 (file)
@@ -138,6 +138,19 @@ def scan_source(build_dir, root_dir, thisbuild):
             d = f.read(1024)
         return bool(d.translate(None, textchars))
 
+    # False positives patterns for files that are binary and executable.
+    safe_paths = [re.compile(r) for r in [
+        r".*/drawable[^/]*/.*\.png$",  # png drawables
+        r".*/mipmap[^/]*/.*\.png$",    # png mipmaps
+        ]
+    ]
+
+    def safe_path(path):
+        for sp in safe_paths:
+            if sp.match(path):
+                return True
+        return False
+
     gradle_compile_commands = get_gradle_compile_commands(thisbuild)
 
     def is_used_by_gradle(line):
@@ -208,7 +221,7 @@ def scan_source(build_dir, root_dir, thisbuild):
                     count += handleproblem('binary', fd, fp)
 
             elif is_executable(fp):
-                if is_binary(fp):
+                if is_binary(fp) and not safe_path(fd):
                     warnproblem('possible binary', fd)
 
     for p in scanignore: