avoid memory leaks in gsmtap error paths
Change-Id: I39295fe768908357d0c359a7ae4fb9fca00d69c3 Related: OS#5329
This commit is contained in:
parent
8a1441e723
commit
2b98363868
|
@ -181,6 +181,13 @@ burst_energy(struct osmo_cxvec *burst)
|
|||
return e;
|
||||
}
|
||||
|
||||
/* wrapper around gsmtap_sendmsg() to avoid memory leaks */
|
||||
static void _gsmtap_sendmsg(struct gsmtap_inst *gti, struct msgb *msg)
|
||||
{
|
||||
if (gsmtap_sendmsg(gti, msg) < 0)
|
||||
msgb_free(msg);
|
||||
}
|
||||
|
||||
|
||||
/* Message parsing -------------------------------------------------------- */
|
||||
|
||||
|
@ -308,7 +315,7 @@ rx_tch9(struct chan_desc *cd)
|
|||
|
||||
/* Send to GSMTap if correct */
|
||||
if (!crc)
|
||||
gsmtap_sendmsg(g_gti, gmr1_gsmtap_makemsg(
|
||||
_gsmtap_sendmsg(g_gti, gmr1_gsmtap_makemsg(
|
||||
GSMTAP_GMR1_TCH9 | GSMTAP_GMR1_FACCH,
|
||||
cd->fn, cd->tch9_state.tn, l2, 38));
|
||||
} else { /* TCH9 */
|
||||
|
@ -327,7 +334,7 @@ rx_tch9(struct chan_desc *cd)
|
|||
fprintf(stderr, "fn=%d, conv9=%d, avg=%d\n", cd->fn, conv, s);
|
||||
|
||||
/* Forward to GSMTap (no CRC to validate :( ) */
|
||||
gsmtap_sendmsg(g_gti, gmr1_gsmtap_makemsg(
|
||||
_gsmtap_sendmsg(g_gti, gmr1_gsmtap_makemsg(
|
||||
GSMTAP_GMR1_TCH9,
|
||||
cd->fn, cd->tch9_state.tn, l2, 60));
|
||||
|
||||
|
@ -422,7 +429,7 @@ _rx_tch3_facch_flush(struct chan_desc *cd)
|
|||
|
||||
/* Send to GSMTap if correct */
|
||||
if (!crc)
|
||||
gsmtap_sendmsg(g_gti, gmr1_gsmtap_makemsg(
|
||||
_gsmtap_sendmsg(g_gti, gmr1_gsmtap_makemsg(
|
||||
GSMTAP_GMR1_TCH3 | GSMTAP_GMR1_FACCH,
|
||||
cd->fn-3, st->tn, l2, 10));
|
||||
|
||||
|
@ -783,7 +790,7 @@ rx_bcch(struct chan_desc *cd, float *energy)
|
|||
|
||||
/* Send to GSMTap if correct */
|
||||
if (!crc)
|
||||
gsmtap_sendmsg(g_gti, gmr1_gsmtap_makemsg(
|
||||
_gsmtap_sendmsg(g_gti, gmr1_gsmtap_makemsg(
|
||||
GSMTAP_GMR1_BCCH,
|
||||
cd->fn, cd->sa_bcch_stn, l2, 24));
|
||||
|
||||
|
@ -835,7 +842,7 @@ rx_ccch(struct chan_desc *cd, float min_energy)
|
|||
|
||||
/* Send to GSMTap if correct */
|
||||
if (!crc)
|
||||
gsmtap_sendmsg(g_gti, gmr1_gsmtap_makemsg(
|
||||
_gsmtap_sendmsg(g_gti, gmr1_gsmtap_makemsg(
|
||||
GSMTAP_GMR1_CCCH,
|
||||
cd->fn, cd->sa_bcch_stn, l2, 24));
|
||||
|
||||
|
|
Loading…
Reference in New Issue