Re: WARNING in __kernel_read

From: Theodore Ts'o
Date: Wed Oct 06 2021 - 09:58:04 EST


On Wed, Oct 06, 2021 at 01:17:32PM +0100, Matthew Wilcox wrote:
> finit_module() is not the only caller of kernel_read_file_from_fd()
> which passes it a fd that userspace passed in, for example
> kexec_file_load() doesn't validate the fd either. We could validate
> the fd in individual syscalls, in kernel_read_file_from_fd()
> or just do what vfs_read() does and return -EBADF without warning.

My suggestion would be to do both, and keep a WARN() in
__kernel_read(), since that should never happen (and we want a stack
trace if it does).

- Ted