From 45431603cbebe21b825a5ad1479e8462d8b5ebf0 Mon Sep 17 00:00:00 2001 From: Sylvain Munaut Date: Thu, 20 Jun 2013 09:59:46 +0200 Subject: host/transceiver: Fix leak in AB processing codepath Thanks to Andreas for pointing this out Signed-off-by: Sylvain Munaut --- src/host/layer23/src/transceiver/demod.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/host/layer23/src/transceiver/demod.c b/src/host/layer23/src/transceiver/demod.c index 45b0570a..98a76c6b 100644 --- a/src/host/layer23/src/transceiver/demod.c +++ b/src/host/layer23/src/transceiver/demod.c @@ -21,8 +21,10 @@ * along with this program. If not, see . */ +#include #include #include +#include #include #include @@ -69,8 +71,10 @@ gsm_ab_ind_process(struct app_state *as, /* Demodulate */ bits = gsm_ab_demodulate(as->gs, burst, chan, toa); - if (!bits) + if (!bits) { + rv = -ENOMEM; goto err; + } /* Copy */ memset(data, 0x00, 148); @@ -83,8 +87,12 @@ gsm_ab_ind_process(struct app_state *as, *toa_p = toa; - return 0; + rv = 0; + /* Cleanup */ err: - return -1; + free(bits); + osmo_cxvec_free(burst); + + return rv; } -- cgit v1.2.3