]> granicus.if.org Git - libevent/commitdiff
fix issue where event_del is called before event_set. bad bad thing to do.
authorNiels Provos <provos@gmail.com>
Tue, 14 Dec 2004 03:36:12 +0000 (03:36 +0000)
committerNiels Provos <provos@gmail.com>
Tue, 14 Dec 2004 03:36:12 +0000 (03:36 +0000)
pointed out by Mark Kidwell <MKidwell@looksmart.net>

svn:r128

event.c

diff --git a/event.c b/event.c
index f1b8b3618547e67161f77373f441ccee9f920552..45d91a4a8130bcc082b13700dfec72b24a7ba2b5 100644 (file)
--- a/event.c
+++ b/event.c
@@ -591,13 +591,21 @@ event_add(struct event *ev, struct timeval *tv)
 int
 event_del(struct event *ev)
 {
-       struct event_base *base = ev->ev_base;
-       const struct eventop *evsel = base->evsel;
-       void *evbase = base->evbase;
+       struct event_base *base;
+       const struct eventop *evsel;
+       void *evbase;
 
        LOG_DBG((LOG_MISC, 80, "event_del: %p, callback %p",
                 ev, ev->ev_callback));
 
+       /* An event without a base has not been added */
+       if (ev->ev_base == NULL)
+               return;
+
+       base = ev->ev_base;
+       evsel = base->evsel;
+       evbase = base->evbase;
+
        assert(!(ev->ev_flags & ~EVLIST_ALL));
 
        /* See if we are just active executing this event in a loop */