diff --git a/src/fs_xattr.cpp b/src/fs_xattr.cpp index d9160063..9e9c67d6 100644 --- a/src/fs_xattr.cpp +++ b/src/fs_xattr.cpp @@ -34,9 +34,11 @@ #include #include +#define TOOBIG_SIZE 65536 using std::istringstream; + int fs::xattr::list(const int fd_, vector *attrs_) @@ -72,6 +74,11 @@ fs::xattr::list(const string &path_, while(true) { rv = fs::llistxattr(path_,attrs_->data(),attrs_->size()); + if(rv >= 0) + return rv; + if(rv != -ERANGE) + return rv; + if(attrs_->size() > 65536) } return rv;