pespin has uploaded this change for review.

View Change

ranap: Fix msgb leak on decode error paths

Change-Id: I4dcd7efc39c3cde052bbd258e4bdd3d13ccf7467
---
M src/sgsn/gprs_ranap.c
1 file changed, 5 insertions(+), 0 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/22/43322/1
diff --git a/src/sgsn/gprs_ranap.c b/src/sgsn/gprs_ranap.c
index 4445235..70b1260 100644
--- a/src/sgsn/gprs_ranap.c
+++ b/src/sgsn/gprs_ranap.c
@@ -379,11 +379,13 @@

if (ranap_parse_lai(&ra_id, &ies->lai) != 0) {
LOGP(DRANAP, LOGL_ERROR, "Failed to parse RANAP LAI IE\n");
+ msgb_free(msg);
return -1;
}

if (!(ies->presenceMask & INITIALUE_MESSAGEIES_RANAP_RAC_PRESENT)) {
LOGP(DRANAP, LOGL_ERROR, "Rejecting InitialUE msg without RAC IE\n");
+ msgb_free(msg);
return -1;
}

@@ -391,12 +393,14 @@
if (ra_id.rac == OSMO_RESERVED_RAC) {
LOGP(DRANAP, LOGL_ERROR,
"Rejecting RNC with invalid/internally used RAC 0x%02x\n", ra_id.rac);
+ msgb_free(msg);
return -1;
}

if (iu_grnc_id_parse(&rnc_id, &ies->globalRNC_ID) != 0) {
LOGP(DRANAP, LOGL_ERROR,
"Failed to parse RANAP Global-RNC-ID IE\n");
+ msgb_free(msg);
return -1;
}

@@ -493,6 +497,7 @@
if (ies->presenceMask & DIRECTTRANSFERIES_RANAP_LAI_PRESENT) {
if (ranap_parse_lai(&_ra_id, &ies->lai) != 0) {
LOGP(DRANAP, LOGL_ERROR, "Failed to parse RANAP LAI IE\n");
+ msgb_free(msg);
return -1;
}
ra_id = &_ra_id;

To view, visit change 43322. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: osmo-sgsn
Gerrit-Branch: master
Gerrit-Change-Id: I4dcd7efc39c3cde052bbd258e4bdd3d13ccf7467
Gerrit-Change-Number: 43322
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>