aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-05-31 20:22:34 +0200
committerHarald Welte <laforge@gnumonks.org>2012-05-31 20:22:34 +0200
commitf25b55ec7115e1f1366d14223527404d6ee96b6a (patch)
tree211eb11ed65681469b80a84d762963e506f38f64
parentc513ded578b239b578d2f0e17d00a4a421951ff8 (diff)
abis_rsl_rcvmsg(): Fix msgb memory leak in error path
Thanks to Andreas Eversberg for spotting this one.
-rw-r--r--openbsc/src/libbsc/abis_rsl.c3
1 files changed, 2 insertions, 1 deletions
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;