]> granicus.if.org Git - libevent/commitdiff
fix a potential memory leak in event_once from Scott Lamb
authorNiels Provos <provos@gmail.com>
Sat, 28 Oct 2006 03:20:22 +0000 (03:20 +0000)
committerNiels Provos <provos@gmail.com>
Sat, 28 Oct 2006 03:20:22 +0000 (03:20 +0000)
svn:r244

event.c

diff --git a/event.c b/event.c
index c7ece90f200235b88348ec02fc32dbd3dc42b73c..b5bda5c40e69b765fdebc060bd5cd7da055fe6a4 100644 (file)
--- a/event.c
+++ b/event.c
@@ -459,6 +459,7 @@ event_once(int fd, short events,
 {
        struct event_once *eonce;
        struct timeval etv;
+       int res;
 
        /* We cannot support signals that just fire once */
        if (events & EV_SIGNAL)
@@ -487,7 +488,11 @@ event_once(int fd, short events,
                return (-1);
        }
 
-       event_add(&eonce->ev, tv);
+       res = event_add(&eonce->ev, tv);
+       if (res != 0) {
+               free(eonce);
+               return (res);
+       }
 
        return (0);
 }