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
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);