]> www.infradead.org Git - users/hch/configfs.git/commit
protect the fetch of ->fd[fd] in do_dup2() from mispredictions
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 1 Aug 2024 19:22:22 +0000 (15:22 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 1 Aug 2024 19:51:57 +0000 (15:51 -0400)
commit8aa37bde1a7b645816cda8b80df4753ecf172bf1
tree08c6dcb66cde62378ba902286fc319fb8ad88dbf
parent8400291e289ee6b2bf9779ff1c83a291501f017b
protect the fetch of ->fd[fd] in do_dup2() from mispredictions

both callers have verified that fd is not greater than ->max_fds;
however, misprediction might end up with
        tofree = fdt->fd[fd];
being speculatively executed.  That's wrong for the same reasons
why it's wrong in close_fd()/file_close_fd_locked(); the same
solution applies - array_index_nospec(fd, fdt->max_fds) could differ
from fd only in case of speculative execution on mispredicted path.

Cc: stable@vger.kernel.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/file.c