@@ -519,6 +519,10 @@ void
|
519 | 519 | mrb_hal_io_fdset_set(mrb_state *mrb, int fd, mrb_io_fdset *fdset) |
520 | 520 | { |
521 | 521 | (void)mrb; |
| 522 | +if (fd >= FD_SETSIZE) { |
| 523 | +mrb_raise(mrb, E_ARGUMENT_ERROR, "fd is larger than FD_SETSIZE"); |
| 524 | +return; |
| 525 | + } |
522 | 526 | if (fdset) { |
523 | 527 | FD_SET(fd, &fdset->fds); |
524 | 528 | } |
@@ -528,6 +532,10 @@ int
|
528 | 532 | mrb_hal_io_fdset_isset(mrb_state *mrb, int fd, mrb_io_fdset *fdset) |
529 | 533 | { |
530 | 534 | (void)mrb; |
| 535 | +if (fd >= FD_SETSIZE) { |
| 536 | +mrb_raise(mrb, E_ARGUMENT_ERROR, "fd is larger than FD_SETSIZE"); |
| 537 | +return 0; |
| 538 | + } |
531 | 539 | if (fdset) { |
532 | 540 | return FD_ISSET(fd, &fdset->fds); |
533 | 541 | } |
|