Add a check of the FD_SETSIZE before the call to select()

Reviewed-by: Kurt Roeckx <kurt@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
diff --git a/apps/speed.c b/apps/speed.c
index 409f3a9..b3f477e 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -1174,6 +1174,16 @@
                 max_fd = job_fd;
         }
 
+        if (max_fd >= FD_SETSIZE) {
+            BIO_printf(bio_err,
+                    "Error: max_fd (%d) must be smaller than FD_SETSIZE (%d). "
+                    "Decrease the value of async_jobs\n",
+                    max_fd, FD_SETSIZE);
+            ERR_print_errors(bio_err);
+            error = 1;
+            break;
+        }
+
         select_result = select(max_fd + 1, &waitfdset, NULL, NULL, NULL);
         if (select_result == -1 && errno == EINTR)
             continue;