From 477e609a84e26188989ecff64e8e3ce19b44952c Mon Sep 17 00:00:00 2001 From: Marc Hoersken Date: Sat, 27 Dec 2014 13:48:51 +0100 Subject: [PATCH] examples/x11.c: fix invalid removal of first list element Fix use of memory after it was being freed. Detected by clang scan in line 56, column 12. --- example/x11.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/example/x11.c b/example/x11.c index 8e52091b..5c447bcb 100644 --- a/example/x11.c +++ b/example/x11.c @@ -48,13 +48,13 @@ static void remove_node(struct chan_X11_list *elem) current_node = gp_x11_chan; if (gp_x11_chan == elem) { - /* Removing the only one element in the list */ - free(gp_x11_chan); - gp_x11_chan = NULL; + gp_x11_chan = gp_x11_chan->next; + free(current_node); + return; } - while( current_node->next != NULL) { - if (current_node->next ==elem) { + while (current_node->next != NULL) { + if (current_node->next == elem) { current_node->next = current_node->next->next; current_node = current_node->next; free(current_node);