summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bluetooth-tds.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/bluetooth-tds.c b/src/bluetooth-tds.c
index 751680d..5459e80 100644
--- a/src/bluetooth-tds.c
+++ b/src/bluetooth-tds.c
@@ -635,8 +635,12 @@ int _bt_tds_parse_transport_blocks(bt_tds_transport_block_list_s **info,
if (info_list != NULL) {
(*info)->data = (tds_transport_data_s **)g_malloc0(g_slist_length(info_list) * sizeof(tds_transport_data_s *));
- for (l = info_list, k = 0; l; l = g_slist_next(l), k++)
- (*info)->data[k] = (tds_transport_data_s*)l->data;
+ k = 0;
+ while (info_list) {
+ l = info_list;
+ (*info)->data[k++] = (tds_transport_data_s*)l->data;
+ info_list = g_slist_remove(info_list, l->data);
+ }
return BT_ERROR_NONE;
}
return BT_ERROR_NO_DATA;