diff --git a/base/src/io_event_reactor.cpp b/base/src/io_event_reactor.cpp index 00eb324dc4da416cccde3044561f8413da51fb82..6772e566dfd68d026ea93685b37cd9aa1f95d145 100644 --- a/base/src/io_event_reactor.cpp +++ b/base/src/io_event_reactor.cpp @@ -164,6 +164,10 @@ ErrCode IOEventReactor::RemoveHandler(IOEventHandler* target) bool IOEventReactor::HasHandler(IOEventHandler* target) { + if (target->fd_ >= ioHandlers_.size()) { + return false; + } + for (IOEventHandler* cur = ioHandlers_[target->fd_].head.get(); cur != nullptr; cur = cur->next_) { if (cur == target) { return true;