about summary refs log tree commit diff
path: root/libevent/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'libevent/event.c')
-rw-r--r--libevent/event.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libevent/event.c b/libevent/event.c
index c7ece90..b5bda5c 100644
--- a/libevent/event.c
+++ b/libevent/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);
 }