X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/e7eb3a2744aa45179daea235800753d3d1955338..401d3485a7923ae9b83b23399bee0ef8d19d0444:/lib/event.c?ds=sidebyside diff --git a/lib/event.c b/lib/event.c index 7232915..ee25024 100644 --- a/lib/event.c +++ b/lib/event.c @@ -311,6 +311,8 @@ int ev_fd(ev_source *ev, D(("registering %s fd %d callback %p %p", modenames[mode], fd, (void *)callback, u)); + if(fd >= FD_SETSIZE) + return -1; assert(mode < ev_nmodes); if(ev->mode[mode].nfds >= ev->mode[mode].fdslots) { ev->mode[mode].fdslots = (ev->mode[mode].fdslots @@ -517,7 +519,9 @@ static void sighandler(int s) { /* probably the reader has stopped listening for some reason */ if(write(sigfd[s], &sc, 1) < 0) { - write(2, errmsg, sizeof errmsg - 1); + /* do the best we can as we're about to abort; shut _up_, gcc */ + int _ignore = write(2, errmsg, sizeof errmsg - 1); + (void)_ignore; abort(); } }