chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge config aliasing bug fix.
[disorder]
/
lib
/
event.c
diff --git
a/lib/event.c
b/lib/event.c
index 7232915df4426a9f5dfc1135476de8e1b6dab059..ee25024c594369c8818471dd6b2b07a5a2ed778f 100644
(file)
--- 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));
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
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) {
/* 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();
}
}
abort();
}
}