From 3816be8b3d83df0e07c0037a190ece2f9739fa9c Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Thu, 25 Feb 2016 15:17:45 -0800 Subject: [PATCH] Fix leak of second+ receive/send object. --- adsbus/receive.c | 3 +++ adsbus/send.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/adsbus/receive.c b/adsbus/receive.c index 74fb013..b39212f 100644 --- a/adsbus/receive.c +++ b/adsbus/receive.c @@ -144,6 +144,9 @@ void receive_new(int fd, void *unused, struct peer *on_close) { receive->parser_wrapper = receive_autodetect_parse; receive->prev = NULL; receive->next = receive_head; + if (receive->next) { + receive->next->prev = receive; + } receive_head = receive; peer_epoll_add((struct peer *) receive, EPOLLIN); diff --git a/adsbus/send.c b/adsbus/send.c index 369459a..c9e98e3 100644 --- a/adsbus/send.c +++ b/adsbus/send.c @@ -126,6 +126,9 @@ void send_new(int fd, struct serializer *serializer, struct peer *on_close) { send->serializer = serializer; send->prev = NULL; send->next = serializer->send_head; + if (send->next) { + send->next->prev = send; + } serializer->send_head = send; peer_epoll_add((struct peer *) send, EPOLLIN);