diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2023-04-27 05:44:42 +0200 |
---|---|---|
committer | neels <nhofmeyr@sysmocom.de> | 2023-04-27 16:41:49 +0000 |
commit | 29d7e780fc96efcb8d4ca01acc0847f94fbeeabf (patch) | |
tree | 97276eec7756002a7bd3df69f33803f9b819ed73 | |
parent | be0b55e0472f99fbac27d885201615a246609cca (diff) |
fix PDU leaks in rua_generate_*() functions
Related: SYS#6297
Change-Id: I04eb1455e1fd43c239f352470bf971b73eb8b205
-rw-r--r-- | src/rua_common.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/rua_common.c b/src/rua_common.c index f21bf8f..37cf3ba 100644 --- a/src/rua_common.c +++ b/src/rua_common.c @@ -134,6 +134,7 @@ struct msgb *rua_generate_initiating_message( { RUA_RUA_PDU_t pdu; int rc; + struct msgb *msg; memset(&pdu, 0, sizeof(pdu)); @@ -146,7 +147,9 @@ struct msgb *rua_generate_initiating_message( return NULL; } - return _rua_gen_msg(&pdu); + msg = _rua_gen_msg(&pdu); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RUA_RUA_PDU, &pdu); + return msg; } struct msgb *rua_generate_successful_outcome( @@ -157,6 +160,7 @@ struct msgb *rua_generate_successful_outcome( { RUA_RUA_PDU_t pdu; int rc; + struct msgb *msg; memset(&pdu, 0, sizeof(pdu)); @@ -169,7 +173,9 @@ struct msgb *rua_generate_successful_outcome( return NULL; } - return _rua_gen_msg(&pdu); + msg = _rua_gen_msg(&pdu); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RUA_RUA_PDU, &pdu); + return msg; } struct msgb *rua_generate_unsuccessful_outcome( @@ -180,6 +186,7 @@ struct msgb *rua_generate_unsuccessful_outcome( { RUA_RUA_PDU_t pdu; int rc; + struct msgb *msg; memset(&pdu, 0, sizeof(pdu)); @@ -192,7 +199,9 @@ struct msgb *rua_generate_unsuccessful_outcome( return NULL; } - return _rua_gen_msg(&pdu); + msg = _rua_gen_msg(&pdu); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RUA_RUA_PDU, &pdu); + return msg; } RUA_IE_t *rua_new_ie(RUA_ProtocolIE_ID_t id, |