From 255bdfe65c593c5c484fe5e8606f1915c26097e3 Mon Sep 17 00:00:00 2001 From: Jochem Broekhoff Date: Fri, 9 Apr 2021 11:03:30 +0200 Subject: [PATCH] examples/hiperfifo.c: check event_initialized before delete If event_del is called with the event struct (still) zeroed out, a segmentation fault may occur. event_initialized checks whether the event struct is nonzero. Closes #6876 --- docs/examples/hiperfifo.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/examples/hiperfifo.c b/docs/examples/hiperfifo.c index 2ca625183..b22f1a71c 100644 --- a/docs/examples/hiperfifo.c +++ b/docs/examples/hiperfifo.c @@ -234,7 +234,9 @@ static void timer_cb(int fd, short kind, void *userp) static void remsock(SockInfo *f) { if(f) { - event_del(&f->ev); + if(event_initialized(&f->ev)) { + event_del(&f->ev); + } free(f); } } @@ -252,7 +254,9 @@ static void setsock(SockInfo *f, curl_socket_t s, CURL *e, int act, f->sockfd = s; f->action = act; f->easy = e; - event_del(&f->ev); + if(event_initialized(&f->ev)) { + event_del(&f->ev); + } event_assign(&f->ev, g->evbase, f->sockfd, kind, event_cb, g); event_add(&f->ev, NULL); }