diff options
author | Harald Welte <laforge@gnumonks.org> | 2019-03-30 08:50:35 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2019-03-30 08:50:35 +0100 |
commit | 2eee4507cafbea4c09ae4c5cc6d111ac87908e15 (patch) | |
tree | 4034e62b87741043fea55ac1f41500e62b9d1a30 | |
parent | 972a1e892e462f4abf05b2c2ee230fdcde8aa603 (diff) |
bankd/client: Fix memory leak if rspro_enc_msg() fails
Change-Id: Ib72b077d82939be0627b9dd7c905fb2a33db9ca5
-rw-r--r-- | src/bankd_main.c | 1 | ||||
-rw-r--r-- | src/rspro_client_fsm.c | 4 |
2 files changed, 4 insertions, 1 deletions
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 @@ static int worker_send_rspro(struct bankd_worker *worker, RsproPDU_t *pdu) 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 @@ static void push_and_send(struct ipa_client_conn *ipa, struct msgb *msg_tx) 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; } |