aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2023-07-05 01:06:20 +0700
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2023-07-05 01:10:43 +0700
commitf8b73f06827b00cc9b49a0edc5e550e22ffce474 (patch)
treec4ea25a46290d6dee1fcd3553f1fa57ae04008c4
parentf4223f5b5373aabf639c0d4dca0ca951bf087d5c (diff)
gsup_server: fix msgb memleak in osmo_gsup_server_read_cb()
I noticed that inability to send IPA PONG in response to IPA PING from osmo-{msc,sgsn} results in an "IPA Multiplex" chunk being leaked. No matter what's returned from ipa_server_conn_ccm(), we need to free the msgb containing the incoming IPA message. Change-Id: I5c5acbffc2913f78db4894ae3633b5eca9c2e8d6
-rw-r--r--src/gsup_server.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/gsup_server.c b/src/gsup_server.c
index 097a854..91110eb 100644
--- a/src/gsup_server.c
+++ b/src/gsup_server.c
@@ -179,11 +179,9 @@ static int osmo_gsup_server_read_cb(struct ipa_server_conn *conn,
if (hh->proto == IPAC_PROTO_IPACCESS) {
rc = ipa_server_conn_ccm(conn, msg);
- if (rc < 0) {
- /* conn is already invalid here! */
- return -1;
- }
msgb_free(msg);
+ if (rc < 0) /* conn is already invalid here! */
+ return -1;
return 0;
}