From ad55a2dfd53b6c33c974243c1061f6f4f9871a0f Mon Sep 17 00:00:00 2001
From: wuqihy <wuqihy@cmhi.chinamobile.com>
Date: Mon, 23 Sep 2019 10:27:23 +0800
Subject: [PATCH] =?UTF-8?q?Add=20aaa-12=20=E4=BF=AE=E6=94=B9dhcp=E5=86=85?=
 =?UTF-8?q?=E5=AD=98=E6=B3=84=E9=9C=B2=E9=94=99=E8=AF=AF=20SOL=20=E9=87=8A?=
 =?UTF-8?q?=E6=94=BEcjson=E8=A7=A3=E6=9E=90=E7=9A=84root=20=E4=BF=AE?=
 =?UTF-8?q?=E6=94=B9=E4=BA=BA=EF=BC=9Awuqihy=20=E6=A3=80=E8=A7=86=E4=BA=BA?=
 =?UTF-8?q?=EF=BC=9Ayinbin?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: wuqihy <wuqihy@cmhi.chinamobile.com>
---
 .../config-server/dhcp_config/dhcp_client_config.c   |  8 ++++++++
 .../config-server/dhcp_config/dhcp_dhcpd_lease.c     |  4 ++++
 .../config-server/dhcp_config/dhcp_host_config.c     | 12 ++++++++++++
 .../config-server/dhcp_config/dhcp_relay_config.c    |  8 ++++++++
 .../dhcp_config/dhcp_shared_network_config.c         | 12 ++++++++++--
 .../config-server/dhcp_config/dhcp_subnet_config.c   | 12 ++++++++++++
 6 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/Platform/user/configm/config-server/dhcp_config/dhcp_client_config.c b/Platform/user/configm/config-server/dhcp_config/dhcp_client_config.c
index f7c538a39..10d24998d 100644
--- a/Platform/user/configm/config-server/dhcp_config/dhcp_client_config.c
+++ b/Platform/user/configm/config-server/dhcp_config/dhcp_client_config.c
@@ -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; 
 }
diff --git a/Platform/user/configm/config-server/dhcp_config/dhcp_dhcpd_lease.c b/Platform/user/configm/config-server/dhcp_config/dhcp_dhcpd_lease.c
index 2f70c8dcb..cc57c4128 100644
--- a/Platform/user/configm/config-server/dhcp_config/dhcp_dhcpd_lease.c
+++ b/Platform/user/configm/config-server/dhcp_config/dhcp_dhcpd_lease.c
@@ -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;
 
 }
diff --git a/Platform/user/configm/config-server/dhcp_config/dhcp_host_config.c b/Platform/user/configm/config-server/dhcp_config/dhcp_host_config.c
index f15548089..a9a07518c 100644
--- a/Platform/user/configm/config-server/dhcp_config/dhcp_host_config.c
+++ b/Platform/user/configm/config-server/dhcp_config/dhcp_host_config.c
@@ -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;
 }
 
diff --git a/Platform/user/configm/config-server/dhcp_config/dhcp_relay_config.c b/Platform/user/configm/config-server/dhcp_config/dhcp_relay_config.c
index 06eeaa718..64071533e 100644
--- a/Platform/user/configm/config-server/dhcp_config/dhcp_relay_config.c
+++ b/Platform/user/configm/config-server/dhcp_config/dhcp_relay_config.c
@@ -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;    
 }
 
diff --git a/Platform/user/configm/config-server/dhcp_config/dhcp_shared_network_config.c b/Platform/user/configm/config-server/dhcp_config/dhcp_shared_network_config.c
index a1f4eb27e..3c60bb71f 100644
--- a/Platform/user/configm/config-server/dhcp_config/dhcp_shared_network_config.c
+++ b/Platform/user/configm/config-server/dhcp_config/dhcp_shared_network_config.c
@@ -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;
     
 }
diff --git a/Platform/user/configm/config-server/dhcp_config/dhcp_subnet_config.c b/Platform/user/configm/config-server/dhcp_config/dhcp_subnet_config.c
index 8ecc6f43d..ae9bc314d 100644
--- a/Platform/user/configm/config-server/dhcp_config/dhcp_subnet_config.c
+++ b/Platform/user/configm/config-server/dhcp_config/dhcp_subnet_config.c
@@ -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;
 }