]> arthur.barton.de Git - bup.git/commitdiff
hlinkdb: always load as bytes on python3
authorJohannes Berg <johannes@sipsolutions.net>
Mon, 27 Jul 2020 21:15:16 +0000 (23:15 +0200)
committerRob Browning <rlb@defaultvalue.org>
Wed, 29 Jul 2020 00:40:47 +0000 (19:40 -0500)
We really need this to be bytes, so always load as such.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Rob Browning <rlb@defaultvalue.org>
[rlb@defaultvalue.org: changed %s to %d]
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
lib/bup/hlinkdb.py

index d4125aef44837084983e712ad67f483a88943f9a..f953a32d321e2b9d3d634a09554c3ef1efa2eb9f 100644 (file)
@@ -6,8 +6,11 @@ from bup import compat
 
 if compat.py_maj > 2:
     import pickle
+    def pickle_load(f):
+        return pickle.load(f, encoding='bytes')
 else:
     import cPickle as pickle
+    pickle_load = pickle.load
 
 
 class Error(Exception):
@@ -32,7 +35,7 @@ class HLinkDB:
                 raise
         if f:
             try:
-                self._node_paths = pickle.load(f)
+                self._node_paths = pickle_load(f)
             finally:
                 f.close()
                 f = None
@@ -94,7 +97,7 @@ class HLinkDB:
 
     def add_path(self, path, dev, ino):
         # Assume path is new.
-        node = '%s:%s' % (dev, ino)
+        node = b'%d:%d' % (dev, ino)
         self._path_node[path] = node
         link_paths = self._node_paths.get(node)
         if link_paths and path not in link_paths:
@@ -122,5 +125,5 @@ class HLinkDB:
             del self._path_node[path]
 
     def node_paths(self, dev, ino):
-        node = '%s:%s' % (dev, ino)
+        node = b'%d:%d' % (dev, ino)
         return self._node_paths[node]