laforge submitted this change.

View Change


Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved
SMPP: Fix Memory leaks

Whenever we call build_tlv() we must
call destroy_tlv() after we are finished with it.

Similarly, smpp34_unpack() makes calls to smpp34_malloc()
and these need to be free'd by us later.

Change-Id: Ic2abcbe78cf7cf7b6ce36fe09aa9b4f8daee973f
---
M src/libsmpputil/smpp_msc.c
M src/libsmpputil/smpp_smsc.c
2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/src/libsmpputil/smpp_msc.c b/src/libsmpputil/smpp_msc.c
index fed5858..cf17540 100644
--- a/src/libsmpputil/smpp_msc.c
+++ b/src/libsmpputil/smpp_msc.c
@@ -788,6 +788,7 @@
sms->msg_ref);

ret = smpp_tx_deliver(esme, &deliver);
+ destroy_tlv(deliver.tlv);
if (ret < 0)
return ret;

diff --git a/src/libsmpputil/smpp_smsc.c b/src/libsmpputil/smpp_smsc.c
index 314dc60..34e24c5 100644
--- a/src/libsmpputil/smpp_smsc.c
+++ b/src/libsmpputil/smpp_smsc.c
@@ -694,6 +694,7 @@

if (!(esme->bind_flags & ESME_BIND_TX)) {
submit_r.command_status = ESME_RINVBNDSTS;
+ destroy_tlv(submit.tlv);
return PACK_AND_SEND(esme->esme, &submit_r);
}

@@ -703,6 +704,7 @@
INIT_RESP(SUBMIT_SM_RESP, &submit_r, &submit);

rc = handle_smpp_submit(esme, &submit, &submit_r);
+ destroy_tlv(submit.tlv);
if (rc == 0)
return PACK_AND_SEND(esme->esme, &submit_r);


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

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: Ic2abcbe78cf7cf7b6ce36fe09aa9b4f8daee973f
Gerrit-Change-Number: 33890
Gerrit-PatchSet: 2
Gerrit-Owner: keith <keith@rhizomatica.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-MessageType: merged