Przeglądaj źródła

xattr: only skip file on BufferTooSmallError

redefine __str__ to get a proper error message, not ''
Marian Beermann 8 lat temu
rodzic
commit
3e04fa972a
2 zmienionych plików z 7 dodań i 3 usunięć
  1. 6 3
      borg/xattr.py
  2. 1 0
      docs/changes.rst

+ 6 - 3
borg/xattr.py

@@ -10,7 +10,7 @@ from ctypes import CDLL, create_string_buffer, c_ssize_t, c_size_t, c_char_p, c_
 from ctypes.util import find_library
 from ctypes.util import find_library
 from distutils.version import LooseVersion
 from distutils.version import LooseVersion
 
 
-from .helpers import Buffer
+from .helpers import Buffer, Error
 
 
 
 
 try:
 try:
@@ -113,8 +113,11 @@ def split_lstring(buf):
     return result
     return result
 
 
 
 
-class BufferTooSmallError(Exception):
-    """the buffer given to an xattr function was too small for the result"""
+class BufferTooSmallError(OSError):
+    """insufficient buffer memory for completing a xattr operation."""
+
+    def __str__(self):
+        return self.__doc__
 
 
 
 
 def _check(rv, path=None, detect_buffer_too_small=False):
 def _check(rv, path=None, detect_buffer_too_small=False):

+ 1 - 0
docs/changes.rst

@@ -132,6 +132,7 @@ Version 1.0.10rc1 (not released yet)
 Bug fixes:
 Bug fixes:
 
 
 - Avoid triggering an ObjectiveFS bug in xattr retrieval, #1992
 - Avoid triggering an ObjectiveFS bug in xattr retrieval, #1992
+- When running out of buffer memory when reading xattrs, only skip the current file, #1993
 
 
 Version 1.0.9 (2016-12-20)
 Version 1.0.9 (2016-12-20)
 --------------------------
 --------------------------