aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2023-04-28 14:45:39 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2023-04-28 14:45:39 +0200
commit7a491b9d5f452692a89c5e4af2a6a88027b5af87 (patch)
tree18fc488db6d25d13b4958550322a5261d35be49a /src
parent5faedf3432364e575e4c6ad9947f61ffe184c95a (diff)
ms: Fix unsafe iterating freeing items in list
Diffstat (limited to 'src')
-rw-r--r--src/gprs_ms.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gprs_ms.c b/src/gprs_ms.c
index 4cab8e48..d9e52ea5 100644
--- a/src/gprs_ms.c
+++ b/src/gprs_ms.c
@@ -409,7 +409,7 @@ static void ms_reset(struct GprsMs *ms)
if (tbf && !tbf_timers_pending(tbf, T_MAX))
tbf_free(tbf);
- llist_for_each_entry(pos, &ms->old_tbfs, list) {
+ while ((pos = llist_first_entry_or_null(&ms->old_tbfs, struct llist_item, list))) {
tbf = (struct gprs_rlcmac_tbf *)pos->entry;
if (!tbf_timers_pending(tbf, T_MAX))
tbf_free(tbf);