Fix Memory leak in util/loc_cfg.cpp

deallocate conf_copy after usage.

Change-Id: I8ad4e4e8007a2d8b608f3f74503515f062b86c4b
CRs-fixed: 852809
This commit is contained in:
Qaing Chen 2015-06-11 16:52:05 -07:00 committed by Qiang Chen
parent 9eb36c357a
commit 634c1bb8bd

View file

@ -330,24 +330,25 @@ int loc_update_conf(const char* conf_data, int32_t length,
// make a copy, so we do not tokenize the original data // make a copy, so we do not tokenize the original data
char* conf_copy = (char*)malloc(length+1); char* conf_copy = (char*)malloc(length+1);
if(conf_copy !=NULL) if (conf_copy != NULL)
{ {
memcpy(conf_copy, conf_data, length); memcpy(conf_copy, conf_data, length);
// we hard NULL the end of string to be safe // we hard NULL the end of string to be safe
conf_copy[length] = 0; conf_copy[length] = 0;
}
// start with one record off // start with one record off
uint32_t num_params = table_length - 1; uint32_t num_params = table_length - 1;
char* saveptr = NULL; char* saveptr = NULL;
char* input_buf = strtok_r(conf_copy, "\n", &saveptr); char* input_buf = strtok_r(conf_copy, "\n", &saveptr);
ret = 0; ret = 0;
LOC_LOGD("%s:%d]: num_params: %d\n", __func__, __LINE__, num_params); LOC_LOGD("%s:%d]: num_params: %d\n", __func__, __LINE__, num_params);
while(num_params && input_buf) { while(num_params && input_buf) {
ret++; ret++;
num_params -= loc_fill_conf_item(input_buf, config_table, table_length); num_params -= loc_fill_conf_item(input_buf, config_table, table_length);
input_buf = strtok_r(NULL, "\n", &saveptr); input_buf = strtok_r(NULL, "\n", &saveptr);
}
free(conf_copy);
} }
} }