diff --git a/src/gb_proxy.c b/src/gb_proxy.c index ccf3f734..fb58284d 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -1470,6 +1470,7 @@ int gprs_ns2_prim_cb(struct osmo_prim_hdr *oph, void *ctx) msgb_nsei(oph->msg) = nsp->nsei; rc = gbprox_rcvmsg(cfg, oph->msg); + msgb_free(oph->msg); break; case PRIM_NS_STATUS: gprs_ns_prim_status_cb(cfg, nsp); diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index 16629800..76fc000d 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -505,7 +505,6 @@ static void send_ns_unitdata(struct gprs_ns2_inst *nsi, const char *text, PRIM_OP_INDICATION, msg); gprs_ns2_callback(&nsp.oph, &gbcfg); - talloc_free(msg); } static int gbprox_test_bssgp_send_cb(void *ctx, struct msgb *msg); @@ -1037,9 +1036,8 @@ static int gprs_ns2_callback(struct osmo_prim_hdr *oph, void *ctx) break; } - /* Hand off to gbproxy */ + /* Hand off to gbproxy which will free the msg */ return gprs_ns2_prim_cb(oph, ctx); - } /* Get the next message from the receive FIFO