summaryrefslogtreecommitdiff
path: root/drivers/qmimodem/sim-legacy.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2019-04-29 14:20:25 -0500
committerDenis Kenzior <denkenz@gmail.com>2019-04-29 14:20:25 -0500
commitfbd9974998767afbac3a54f2e09a55376e97e602 (patch)
tree7859e0100888e9a0da1a2a37ca7bb726588c56a0 /drivers/qmimodem/sim-legacy.c
parent4a93c329b9139af380da49ef373e7ad72834d210 (diff)
downloadofono-fbd9974998767afbac3a54f2e09a55376e97e602.tar.gz
qmimodem: Fix potential memory leak
In case strlen(ICCID) > 20, we simply return without freeing the ICCID value first.
Diffstat (limited to 'drivers/qmimodem/sim-legacy.c')
-rw-r--r--drivers/qmimodem/sim-legacy.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/qmimodem/sim-legacy.c b/drivers/qmimodem/sim-legacy.c
index 30eb4613..601e721d 100644
--- a/drivers/qmimodem/sim-legacy.c
+++ b/drivers/qmimodem/sim-legacy.c
@@ -83,13 +83,13 @@ static void get_iccid_cb(struct qmi_result *result, void *user_data)
len = strlen(str);
if (len > 20) {
+ qmi_free(str);
CALLBACK_WITH_FAILURE(cb, NULL, 0, cbd->data);
return;
}
sim_encode_bcd_number(str, iccid);
iccid_len = len / 2;
-
qmi_free(str);
CALLBACK_WITH_SUCCESS(cb, iccid, iccid_len, cbd->data);