In the Linux kernel, the following vulnerability has been resolved: protect the fetch of ->fd[fd] in dodup2() from mispredictions both callers have verified that fd is not greater than ->maxfds; 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 closefd()/fileclosefdlocked(); the same solution applies - arrayindexnospec(fd, fdt->max_fds) could differ from fd only in case of speculative execution on mispredicted path.