aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/src/gprs/gprs_sndcp.c4
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);
}