From a4952aa43625140ec7e9f2e892d938d16ee7ae88 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 16 Feb 2018 01:26:00 +0100 Subject: memleak: fix all libosmocore callers of gsmtap_sendmsg() to free on failure gsmtap_sendmsg() does not free the msgb if it returns a failure rc, so the callers must check the rc and free the msg. Change-Id: I7cf64ed9b14247298ed8b4ab8735627f8235a499 --- src/gsmtap_util.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/gsmtap_util.c') diff --git a/src/gsmtap_util.c b/src/gsmtap_util.c index 962782b5..b21c690b 100644 --- a/src/gsmtap_util.c +++ b/src/gsmtap_util.c @@ -303,6 +303,7 @@ int gsmtap_send_ex(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_ unsigned int len) { struct msgb *msg; + int rc; if (!gti) return -ENODEV; @@ -312,7 +313,10 @@ int gsmtap_send_ex(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_ if (!msg) return -ENOMEM; - return gsmtap_sendmsg(gti, msg); + rc = gsmtap_sendmsg(gti, msg); + if (rc) + msgb_free(msg); + return rc; } /*! send a message from L1/L2 through GSMTAP. -- cgit v1.2.3