diff --git a/Makefile b/Makefile index 56ff90e4d6036d..753e98740a5e1e 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 6 -SUBLEVEL = 132 +SUBLEVEL = 133 EXTRAVERSION = NAME = Pinguïn Aangedreven diff --git a/fs/xattr.c b/fs/xattr.c index 5f2d74332ea636..20a038b06d1275 100644 --- a/fs/xattr.c +++ b/fs/xattr.c @@ -699,6 +699,8 @@ SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name, CLASS(fd, f)(fd); + if (!f.file) + return -EBADF; audit_file(f.file); error = setxattr_copy(name, &ctx); if (error) @@ -810,6 +812,8 @@ SYSCALL_DEFINE4(fgetxattr, int, fd, const char __user *, name, { CLASS(fd, f)(fd); + if (!f.file) + return -EBADF; audit_file(f.file); return getxattr(file_mnt_idmap(f.file), f.file->f_path.dentry, name, value, size); @@ -881,8 +885,10 @@ SYSCALL_DEFINE3(flistxattr, int, fd, char __user *, list, size_t, size) { CLASS(fd, f)(fd); + if (!f.file) + return -EBADF; audit_file(f.file); - return listxattr(f.file->f_path.dentry, list, size); + return listxattr(f.file->f_path.dentry, list, size); } /* @@ -943,6 +949,8 @@ SYSCALL_DEFINE2(fremovexattr, int, fd, const char __user *, name) char kname[XATTR_NAME_MAX + 1]; int error; + if (!f.file) + return -EBADF; audit_file(f.file); error = strncpy_from_user(kname, name, sizeof(kname));