aboutsummaryrefslogtreecommitdiff
path: root/libqcdm
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-07-22 23:50:58 +0200
committerAleksander Morgado <aleksander@aleksander.es>2021-07-27 00:10:02 +0200
commit689769467a31ef5cbcc7b5abfc7a0a48eeaf41be (patch)
tree9075b61e8fc57de2689bdc20fece314ae0a69b78 /libqcdm
parent4bd8845f50755faf3279954c716b0476fbd0dc86 (diff)
libqcdm: plug leak in qcdm_cdm_log_config_new()
==748616== 37 bytes in 1 blocks are definitely lost in loss record 2,850 of 4,938 ==748616== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==748616== by 0x249CCF: qcdm_cmd_log_config_new (commands.c:1742) ==748616== by 0x24A321: qcdm_cmd_log_config_set_mask_new (commands.c:1901) ==748616== by 0x1DAE12: modem_cdma_setup_cleanup_unsolicited_events (mm-broadband-modem.c:8643) ==748616== by 0x1DAF21: modem_cdma_setup_unsolicited_events (mm-broadband-modem.c:8671) ==748616== by 0x1AE49F: interface_enabling_step (mm-iface-modem-cdma.c:1627) ==748616== by 0x1AE680: mm_iface_modem_cdma_enable (mm-iface-modem-cdma.c:1693) ==748616== by 0x1E2DF6: enabling_step (mm-broadband-modem.c:11756) ==748616== by 0x1E204E: iface_modem_3gpp_ussd_enable_ready (mm-broadband-modem.c:11606) ==748616== by 0x4F03533: g_task_return_now (gtask.c:1219) ==748616== by 0x4F07078: UnknownInlinedFun (gtask.c:1289) ==748616== by 0x4F07078: g_task_return (gtask.c:1245) ==748616== by 0x1AA323: interface_enabling_step (mm-iface-modem-3gpp-ussd.c:702)
Diffstat (limited to 'libqcdm')
-rw-r--r--libqcdm/src/commands.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libqcdm/src/commands.c b/libqcdm/src/commands.c
index c05504c7..a97cb9af 100644
--- a/libqcdm/src/commands.c
+++ b/libqcdm/src/commands.c
@@ -1720,6 +1720,7 @@ qcdm_cmd_log_config_new (char *buf,
size_t cmdsize = 0, cmdbufsize;
uint32_t i;
uint16_t log_code;
+ size_t ret;
qcdm_return_val_if_fail (buf != NULL, 0);
qcdm_return_val_if_fail ((equip_id & 0xFFF0) == 0, 0);
@@ -1753,7 +1754,10 @@ qcdm_cmd_log_config_new (char *buf,
cmd->num_items = htole32 (highest);
}
- return dm_encapsulate_buffer ((char *) cmd, cmdsize, cmdbufsize, buf, len);
+ ret = dm_encapsulate_buffer ((char *) cmd, cmdsize, cmdbufsize, buf, len);
+ free (cmd);
+
+ return ret;
}
size_t