diff options
-rw-r--r-- | openbsc/src/gprs/gprs_sndcp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/openbsc/src/gprs/gprs_sndcp.c b/openbsc/src/gprs/gprs_sndcp.c index 3b6ca9628..20f4fc76f 100644 --- a/openbsc/src/gprs/gprs_sndcp.c +++ b/openbsc/src/gprs/gprs_sndcp.c @@ -198,10 +198,10 @@ static int defrag_input(struct gprs_sndcp_entity *sne, struct msgb *msg, uint8_t /* first segment of a new packet. Discard all leftover fragments of * previous packet */ if (!llist_empty(&sne->defrag.frag_list)) { - struct defrag_queue_entry *dqe; + struct defrag_queue_entry *dqe, *dqe2; LOGP(DSNDCP, LOGL_INFO, "Dropping SN-PDU due to " "insufficient segments\n"); - llist_for_each_entry(dqe, &sne->defrag.frag_list, list) { + llist_for_each_entry_safe(dqe, dqe2, &sne->defrag.frag_list, list) { llist_del(&dqe->list); talloc_free(dqe); } |