Andreas Eversberg wrote:
+++ b/src/gsm/lapd_core.c @@ -1950,7 +1950,7 @@ static int lapd_res_req(struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx) struct lapd_msg_ctx nctx;
LOGP(DLLAPD, LOGL_INFO, "perform re-establishment (SABM) length=%d\n", - msg->len); + (msg) ? msg->len : 0);
/* be sure that history is empty */ lapd_dl_flush_hist(dl); @@ -1962,11 +1962,14 @@ static int lapd_res_req(struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx) if (dl->send_buffer) msgb_free(dl->send_buffer); dl->send_out = 0; - if (msg && msg->len) + if (msg && msg->len) { /* Write data into the send buffer, to be sent first */ dl->send_buffer = msg; - else + } else { + if (msg) + msgb_free(msg); dl->send_buffer = NULL; + }
Does msg also need to be set to NULL after the above msgb_free()? //Peter