From 25b3424c164f7e45b74e015e4f7053c3816dad78 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 16 Nov 2013 18:19:22 +0000 Subject: -avoid use after free --- src/conversation/gnunet-service-conversation.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/conversation/gnunet-service-conversation.c') diff --git a/src/conversation/gnunet-service-conversation.c b/src/conversation/gnunet-service-conversation.c index 36e8d5060..900de3275 100644 --- a/src/conversation/gnunet-service-conversation.c +++ b/src/conversation/gnunet-service-conversation.c @@ -968,6 +968,7 @@ handle_mesh_hangup_message (void *cls, struct Channel *ch = *channel_ctx; struct Line *line; struct ClientPhoneHangupMessage hup; + enum ChannelStatus status; if (NULL == ch) { @@ -980,8 +981,9 @@ handle_mesh_hangup_message (void *cls, hup.header.size = sizeof (hup); hup.header.type = htons (GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_HANG_UP); hup.cid = ch->cid; + status = ch->status; destroy_line_mesh_channels (ch); - switch (ch->status) + switch (status) { case CS_CALLEE_RINGING: case CS_CALLEE_CONNECTED: -- cgit v1.2.3