bankd/client: Fix memory leak if rspro_enc_msg() fails
Change-Id: Ib72b077d82939be0627b9dd7c905fb2a33db9ca5
diff --git a/src/bankd_main.c b/src/bankd_main.c
index cb78718..b3a5513 100644
--- a/src/bankd_main.c
+++ b/src/bankd_main.c
@@ -435,6 +435,7 @@
int rc;
if (!msg) {
+ ASN_STRUCT_FREE(asn_DEF_RsproPDU, pdu);
LOGW(worker, "error encoding RSPRO\n");
return -1;
}
diff --git a/src/rspro_client_fsm.c b/src/rspro_client_fsm.c
index 925b0ff..c8d9f4e 100644
--- a/src/rspro_client_fsm.c
+++ b/src/rspro_client_fsm.c
@@ -58,8 +58,10 @@
int ipa_client_conn_send_rspro(struct ipa_client_conn *ipa, RsproPDU_t *rspro)
{
struct msgb *msg = rspro_enc_msg(rspro);
- if (!msg)
+ if (!msg) {
+ ASN_STRUCT_FREE(asn_DEF_RsproPDU, rspro);
return -1;
+ }
push_and_send(ipa, msg);
return 0;
}