diff --git a/src/ChangeLog b/src/ChangeLog index 9ee108ba..c32550ec 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2003-11-08 Hrvoje Niksic + + * connect.c (register_extended): Check that fd >= 0. + 2003-11-07 Hrvoje Niksic * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO. diff --git a/src/connect.c b/src/connect.c index c835fa92..a88e2595 100644 --- a/src/connect.c +++ b/src/connect.c @@ -628,7 +628,14 @@ void register_extended (int fd, xreader_t reader, xwriter_t writer, xpoller_t poller, xcloser_t closer, void *ctx) { - struct extended_info *info = xnew (struct extended_info); + struct extended_info *info; + + /* The file descriptor must be non-negative to be registered. + Negative values are ignored by xclose(), and -1 cannot be used as + hash key. */ + assert (fd >= 0); + + info = xnew (struct extended_info); info->reader = reader; info->writer = writer; info->poller = poller;