From 1ccb178781d72a0d899c878e4e5364eff816b227 Mon Sep 17 00:00:00 2001 From: JK Chen Date: Sat, 10 Aug 2024 15:25:03 +0800 Subject: [PATCH] Fix event_data->e_list management in tgt_event_add to prevent potential memory leak Signed-off-by: JK Chen --- usr/tgtd.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/usr/tgtd.c b/usr/tgtd.c index 7e6853f5..069f3060 100644 --- a/usr/tgtd.c +++ b/usr/tgtd.c @@ -217,12 +217,13 @@ int tgt_event_add(int fd, int events, event_handler_t handler, void *data) memset(&ev, 0, sizeof(ev)); ev.events = events; ev.data.ptr = tev; + list_add(&tev->e_list, &tgt_events_list); err = epoll_ctl(ep_fd, EPOLL_CTL_ADD, fd, &ev); if (err) { eprintf("Cannot add fd, %m\n"); + list_del(&tev->e_list); free(tev); - } else - list_add(&tev->e_list, &tgt_events_list); + } return err; }