hal: Fix memory leak in HAL debug logs
String returned from str_parms_to_str for set/get parameter in
debug logs is not de-allocated. Fix is to make sure the memory
allocated for set parameter key value pair is de-allocated.
CRs-Fixed: 610079
Change-Id: I5027d8f1741c9e7223e7b4721f8d5473404998d3
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index a25991f..4648dbb 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1481,8 +1481,9 @@
char value[256] = {0};
int val;
int ret = 0, err;
+ char *kv_pairs = str_parms_to_str(parms);
- ALOGV("%s: enter: %s", __func__, str_parms_to_str(parms));
+ ALOGV_IF(kv_pairs != NULL, "%s: enter: %s", __func__, kv_pairs);
err = str_parms_get_int(parms, AUDIO_PARAMETER_KEY_BTSCO, &val);
if (err >= 0) {
@@ -1527,6 +1528,7 @@
}
ALOGV("%s: exit with code(%d)", __func__, ret);
+ free(kv_pairs);
return ret;
}
@@ -1625,6 +1627,7 @@
char value[256] = {0};
int ret;
int fluence_type;
+ char *kv_pairs = NULL;
ret = str_parms_get_str(query, AUDIO_PARAMETER_KEY_FLUENCE_TYPE,
value, sizeof(value));
@@ -1660,7 +1663,9 @@
str_parms_add_str(reply, AUDIO_PARAMETER_KEY_VOLUME_BOOST, value);
}
- ALOGV("%s: exit: returns - %s", __func__, str_parms_to_str(reply));
+ kv_pairs = str_parms_to_str(reply);
+ ALOGV_IF(kv_pairs != NULL, "%s: exit: returns - %s", __func__, kv_pairs);
+ free(reply);
}
/* Delay in Us */