Index: src/OFStreamObserver_kqueue.m ================================================================== --- src/OFStreamObserver_kqueue.m +++ src/OFStreamObserver_kqueue.m @@ -28,10 +28,11 @@ #import "OFStreamObserver_kqueue.h" #import "OFDataArray.h" #import "OFInitializationFailedException.h" #import "OFOutOfMemoryException.h" +#import "OFOutOfRangeException.h" #import "autorelease.h" #import "macros.h" #define EVENTLIST_SIZE 64 @@ -68,18 +69,24 @@ - (void)OF_addFileDescriptorForReading: (int)fd { struct kevent event; + if ([changeList count] >= INT_MAX) + @throw [OFOutOfRangeException exceptionWithClass: [self class]]; + EV_SET(&event, fd, EVFILT_READ, EV_ADD, 0, 0, 0); [changeList addItem: &event]; } - (void)OF_addFileDescriptorForWriting: (int)fd { struct kevent event; + if ([changeList count] >= INT_MAX) + @throw [OFOutOfRangeException exceptionWithClass: [self class]]; + EV_SET(&event, fd, EVFILT_WRITE, EV_ADD, 0, 0, 0); [changeList addItem: &event]; } - (void)OF_removeFileDescriptorForReading: (int)fd