浏览代码

acls (posix platforms): use surrogatescape error handling for posix_acl_use_stored_uid_gid

surrogatescape will decode/encode invalid utf-8 sequences (if we do not get utf-8) in a round-tripping way.
Thomas Waldmann 9 年之前
父节点
当前提交
63ed5d9949
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      borg/helpers.py

+ 2 - 2
borg/helpers.py

@@ -516,14 +516,14 @@ def posix_acl_use_stored_uid_gid(acl):
     """Replace the user/group field with the stored uid/gid
     """
     entries = []
-    for entry in acl.decode('ascii').split('\n'):
+    for entry in acl.decode('utf-8', 'surrogateescape').split('\n'):
         if entry:
             fields = entry.split(':')
             if len(fields) == 4:
                 entries.append(':'.join([fields[0], fields[3], fields[2]]))
             else:
                 entries.append(entry)
-    return ('\n'.join(entries)).encode('ascii')
+    return '\n'.join(entries).encode('utf-8', 'surrogateescape')
 
 
 class Location: