diff --git a/fs/kernel_read_file.c b/fs/kernel_read_file.c index 87aac4c72c37da2f82cad443279d66f0b5a2cf8c..1b07550485b96415f0a79a7029b10bf5d78c643e 100644 --- a/fs/kernel_read_file.c +++ b/fs/kernel_read_file.c @@ -178,7 +178,7 @@ int kernel_read_file_from_fd(int fd, loff_t offset, void **buf, struct fd f = fdget(fd); int ret = -EBADF; - if (!f.file) + if (!f.file || !(f.file->f_mode & FMODE_READ)) goto out; ret = kernel_read_file(f.file, offset, buf, buf_size, file_size, id);