The branch master has been updated via e1f8584d47a499301fba781086af6885fcf21fec (commit) from f42c225d7f9a0bce0bf46103343402d3f0ad742f (commit)
- Log ----------------------------------------------------------------- commit e1f8584d47a499301fba781086af6885fcf21fec Author: Pauli <paul.d...@oracle.com> Date: Sat Aug 24 16:13:24 2019 +1000 Avoid overflowing FDSET when using select(2). There is a problem in the rand_unix.c code when the random seed fd is greater than or equal to FD_SETSIZE and the FDSET overruns its limit and walks the stack. Reviewed-by: Bernd Edlinger <bernd.edlin...@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9686) ----------------------------------------------------------------------- Summary of changes: crypto/rand/rand_unix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/rand/rand_unix.c b/crypto/rand/rand_unix.c index 0ca66e41ff..7e20fa29c6 100644 --- a/crypto/rand/rand_unix.c +++ b/crypto/rand/rand_unix.c @@ -390,7 +390,7 @@ static int wait_random_seeded(void) } /* Open /dev/random and wait for it to be readable */ if ((fd = open(DEVRANDOM_WAIT, O_RDONLY)) != -1) { - if (DEVRANDM_WAIT_USE_SELECT) { + if (DEVRANDM_WAIT_USE_SELECT && fd < FD_SETSIZE) { FD_ZERO(&fds); FD_SET(fd, &fds); while ((r = select(fd + 1, &fds, NULL, NULL, NULL)) < 0