From d911439ca3bb43876dcabe37953ab0f4e92ba976 Mon Sep 17 00:00:00 2001 From: CismonX Date: Sun, 6 Jul 2025 11:29:55 +0800 Subject: [PATCH] xattr: fix xattr_do_get/xattr_do_list return value The functions should return negated errno on failure, since bookmarkfs_xattr_get() and bookmarkfs_xattr_list() check whether the syscall fails with ERANGE. --- src/xattr.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/xattr.c b/src/xattr.c index 6d632ce..b88632c 100644 --- a/src/xattr.c +++ b/src/xattr.c @@ -63,11 +63,13 @@ xattr_do_get ( #if defined(__linux__) result = fgetxattr(fd, name, buf, buf_len); if (result < 0) { + result = -errno; log_printf("fgetxattr(): %s", strerror(errno)); } #elif defined(__FreeBSD__) result = extattr_get_fd(fd, EXTATTR_NAMESPACE_USER, name, buf, buf_len); if (result < 0) { + result = -errno; log_printf("extattr_get_fd(): %s", strerror(errno)); } #else @@ -86,11 +88,13 @@ xattr_do_list ( #if defined(__linux__) result = flistxattr(fd, buf, buf_len); if (result < 0) { + result = -errno; log_printf("flistxattr(): %s", strerror(errno)); } #elif defined(__FreeBSD__) result = extattr_list_fd(fd, EXTATTR_NAMESPACE_USER, buf, buf_len); if (result < 0) { + result = -errno; log_printf("extattr_list_fd(): %s", strerror(errno)); } #else