]> granicus.if.org Git - libevent/commitdiff
Avoid crash when event_pending() called with no event_base set on event
authorNick Mathewson <nickm@torproject.org>
Fri, 16 Nov 2012 16:55:27 +0000 (11:55 -0500)
committerNick Mathewson <nickm@torproject.org>
Fri, 16 Nov 2012 16:56:56 +0000 (11:56 -0500)
Instead, give a warning and return 0.

Reported by Antony Dovgal on github as
   https://github.com/libevent/libevent/issues/19

event.c

diff --git a/event.c b/event.c
index 91cb0cce37ba2ff276169306a59405fc8fc23c73..a979f1f2649695678a1b152368baa6f5b14b35e4 100644 (file)
--- a/event.c
+++ b/event.c
@@ -1850,6 +1850,11 @@ event_pending(const struct event *ev, short event, struct timeval *tv)
 {
        int flags = 0;
 
+       if (EVUTIL_FAILURE_CHECK(ev->ev_base == NULL)) {
+               event_warnx("%s: event has no event_base set.", __func__);
+               return 0;
+       }
+
        EVBASE_ACQUIRE_LOCK(ev->ev_base, th_base_lock);
        _event_debug_assert_is_setup(ev);