From f25b55ec7115e1f1366d14223527404d6ee96b6a Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 31 May 2012 20:22:34 +0200 Subject: abis_rsl_rcvmsg(): Fix msgb memory leak in error path Thanks to Andreas Eversberg for spotting this one. --- openbsc/src/libbsc/abis_rsl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 9b3658ecf..a38ab2114 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1907,6 +1907,7 @@ int abis_rsl_rcvmsg(struct msgb *msg) if (msgb_l2len(msg) < sizeof(*rslh)) { DEBUGP(DRSL, "Truncated RSL message with l2len: %u\n", msgb_l2len(msg)); + msgb_free(msg); return -1; } @@ -1935,7 +1936,7 @@ int abis_rsl_rcvmsg(struct msgb *msg) default: LOGP(DRSL, LOGL_NOTICE, "unknown RSL message discriminator " "0x%02x\n", rslh->msg_discr); - return -EINVAL; + rc = -EINVAL; } msgb_free(msg); return rc; -- cgit v1.2.3