[Reproducible-commits] [diffoscope] 09/17: File.guess_file_type: Protect access to mimedb

Jérémy Bobbio lunar at moszumanska.debian.org
Tue Dec 8 18:15:21 UTC 2015


This is an automated email from the git hooks/post-receive script.

lunar pushed a commit to branch pu/parallel2
in repository diffoscope.

commit 0a7ca0ee8b0a0911f52b6ea7bf0e041bf3f0e5d6
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Thu Dec 3 12:24:28 2015 +0100

    File.guess_file_type: Protect access to mimedb
---
 diffoscope/comparators/binary.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/diffoscope/comparators/binary.py b/diffoscope/comparators/binary.py
index bcf4d4c..35868e4 100644
--- a/diffoscope/comparators/binary.py
+++ b/diffoscope/comparators/binary.py
@@ -22,6 +22,8 @@ from binascii import hexlify
 from contextlib import contextmanager
 from functools import wraps
 from io import StringIO
+from threading import Lock
+import itertools
 import os
 import os.path
 import re
@@ -66,7 +68,11 @@ class File(object, metaclass=ABCMeta):
             if not hasattr(self, '_mimedb'):
                 self._mimedb = magic.open(magic.NONE)
                 self._mimedb.load()
-            return self._mimedb.file(path)
+                self._mimedb_lock = Lock()
+            self._mimedb_lock.acquire()
+            file_type = self._mimedb.file(path)
+            self._mimedb_lock.release()
+            return file_type
 
         @classmethod
         def guess_encoding(self, path):

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git



More information about the Reproducible-commits mailing list