Add aaa-12 修改dhcp内存泄露错误

SOL 释放cjson解析的root
修改人:wuqihy
检视人:yinbin

Signed-off-by: wuqihy <wuqihy@cmhi.chinamobile.com>
This commit is contained in:
wuqihy 2019-09-23 10:27:23 +08:00
parent 09a8689a6a
commit ad55a2dfd5
6 changed files with 54 additions and 2 deletions

View File

@ -106,6 +106,10 @@ INPUT_ERROR:
free(cmd);
}
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}
@ -207,5 +211,9 @@ ret_code dhcp_client_get(uint source,
*output_len = strlen(out) + 1;
memcpy(output, out, *output_len);
free(out);
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}

View File

@ -103,6 +103,10 @@ ret_code dhcp_dhcpd_lease_get_all(uint source, pointer output, int *output_len)
free(out);
//out = cJSON_Print(root);
//printf("%s\n",out);
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}

View File

@ -235,6 +235,10 @@ INPUT_ERROR:
memset(cmd, 0, len + 1);
free(cmd);
}
if(root){
cJSON_Delete(root);
root = NULL;
}
//ret = RET_INPUTERR;
return ret;
}
@ -332,6 +336,10 @@ ret_code dhcp_host_config_get(uint source,
*output_len = strlen(out) + 1;
memcpy(output, out, *output_len);
free(out);
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}
@ -409,6 +417,10 @@ ret_code dhcp_host_config_get_all(uint source, pointer output, int *output_len){
*output_len = strlen(out) + 1;
memcpy(output, out, *output_len);
free(out);
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}

View File

@ -128,6 +128,10 @@ INPUT_ERROR:
free(cmd);
cmd = NULL;
}
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}
@ -180,6 +184,10 @@ ret_code dhcp_relay_config_get_all(uint source, pointer output, int *output_len)
*output_len = strlen(out) + 1;
memcpy(output, out, *output_len);
free(out);
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}

View File

@ -5,6 +5,7 @@ ret_code dhcp_shared_network_config_chk(uint source, uint *config_type,
pointer output, int *output_len)
{
ret_code ret = RET_OK;
/*
cJSON *root=NULL, *operate=NULL;
root = cJSON_Parse(input);
if(NULL == root)
@ -17,7 +18,7 @@ ret_code dhcp_shared_network_config_chk(uint source, uint *config_type,
}
else {
*config_type = CM_CONFIG_GET_ALL;
}
}*/
return ret;
}
@ -362,7 +363,10 @@ INPUT_ERROR:
memset(cmd, 0, len + 1);
free(cmd);
}
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}
@ -507,6 +511,10 @@ ret_code dhcp_shared_network_config_get_all(uint source, pointer output, int *ou
*output_len = strlen(out) + 1;
memcpy(output, out, *output_len);
free(out);
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}

View File

@ -308,6 +308,10 @@ INPUT_ERROR:
if(router){
free(router);
}
if(root){
cJSON_Delete(root);
root = NULL;
}
//ret = RET_INPUTERR;
return ret;
}
@ -459,6 +463,10 @@ ret_code dhcp_subnet_config_get(uint source,
*output_len = strlen(out) + 1;
memcpy(output, out, *output_len);
free(out);
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}
@ -599,6 +607,10 @@ ret_code dhcp_subnet_config_get_all(uint source, pointer output, int *output_len
*output_len = strlen(out) + 1;
memcpy(output, out, *output_len);
free(out);
if(root){
cJSON_Delete(root);
root = NULL;
}
return ret;
}