common: fix segfault issue 83/44183/1
authorSuchang Woo <suchang.woo@samsung.com>
Fri, 17 Jul 2015 12:02:40 +0000 (21:02 +0900)
committerSuchang Woo <suchang.woo@samsung.com>
Fri, 17 Jul 2015 12:02:40 +0000 (21:02 +0900)
When vconf APIs is invoked in callback function, client's receive buffer
which is already full is used again. This makes an abnormal state.
Before invoking callback function, full buffer should be removed from
receive buffer list.

Change-Id: Ie47cca364dfc03fde14aad3e7d156b394cf0a675
Signed-off-by: Suchang Woo <suchang.woo@samsung.com>
common/proto.c

index b87e396..d0ab261 100644 (file)
@@ -144,6 +144,7 @@ static int recv_cont(struct recv_info *rif)
                bxt_dbg("rif %p received %d / %d", rif, rif->recved, rif->len);
 
                assert(rif->callback);
+               recv_list = g_list_remove(recv_list, rif);
                rif->callback(rif->user_data, rif->type, rif->data, rif->len);
                remove_rif(rif);
        }