From 628add0e5c4bdbeaa4ac7c9f87148330dfe2d48d Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Fri, 30 Nov 2012 13:57:41 +0100 Subject: [PATCH] attrib: Fix possible use after free Move io channels unrefs after last use of channels. --- src/attrib-server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/attrib-server.c b/src/attrib-server.c index 8e2090334..1a9bd69a6 100644 --- a/src/attrib-server.c +++ b/src/attrib-server.c @@ -127,13 +127,13 @@ static void gatt_server_free(struct gatt_server *server) g_list_free_full(server->database, attrib_free); if (server->l2cap_io != NULL) { - g_io_channel_unref(server->l2cap_io); g_io_channel_shutdown(server->l2cap_io, FALSE, NULL); + g_io_channel_unref(server->l2cap_io); } if (server->le_io != NULL) { - g_io_channel_unref(server->le_io); g_io_channel_shutdown(server->le_io, FALSE, NULL); + g_io_channel_unref(server->le_io); } g_slist_free_full(server->clients, (GDestroyNotify) channel_free); -- 2.47.3