uint8_t uid_buf[4];
size = SMB_VFS_NEXT_FGETXATTR(handle, fsp, FAKE_UID, uid_buf, sizeof(uid_buf));
- if (size == -1 && errno == ENOATTR) {
+ if (size == -1 && ((errno == ENOATTR) || (errno == EBADF))) {
return 0;
}
if (size != 4) {
uint8_t gid_buf[4];
size = SMB_VFS_NEXT_FGETXATTR(handle, fsp, FAKE_GID, gid_buf, sizeof(gid_buf));
- if (size == -1 && errno == ENOATTR) {
+ if (size == -1 && ((errno == ENOATTR) || (errno == EBADF))) {
return 0;
}
if (size != 4) {
length = SMB_VFS_NEXT_FGETXATTR(handle, fsp, name, blob.data, blob.length);
blob.length = length;
} while (length == -1 && errno == ERANGE);
- if (length == -1 && errno == ENOATTR) {
+ if (length == -1 && ((errno == ENOATTR) || (errno == EBADF))) {
TALLOC_FREE(frame);
return NULL;
}
}
ret = SMB_VFS_NEXT_FREMOVEXATTR(handle, fsp, name);
- if (ret == -1 && errno == ENOATTR) {
+ if (ret == -1 && ((errno == ENOATTR) || (errno == EBADF))) {
ret = 0;
errno = 0;
}
talloc_tos());
if (the_acl == NULL) {
TALLOC_FREE(frame);
- if (errno == ENOATTR) {
+ if (((errno == ENOATTR) || (errno == EBADF))) {
/* No ACL on this file. Just passthrough. */
return 0;
}