diff --git a/src/lynq/lib/liblynq-wifi6/libwifi6.c b/src/lynq/lib/liblynq-wifi6/libwifi6.c
index 02b3b16..d2df291 100755
--- a/src/lynq/lib/liblynq-wifi6/libwifi6.c
+++ b/src/lynq/lib/liblynq-wifi6/libwifi6.c
@@ -2790,29 +2790,36 @@
     count = lynq_get_network_number_list(idx, CTRL_STA, net_no_list, NULL);
     RLOGD("[lynq_get_sta_saved_ap]count is %d\n", count);
 
+    if (count < 0)
+    {
+        RLOGE("list network fail");
+        return count;
+    }
+    else if (count == 0)
+    {
+        *list = NULL;
+        *len = 0;
+        return 0;
+    }
+
     *list = malloc(sizeof (saved_ap_info_s) * count);
     memset(*list, 0, sizeof (saved_ap_info_s) * count);
     *len = count;
 
     for (index=0; index < count; index++)
     {
-	RLOGD("[lynq_get_sta_saved_ap]to get ssid %d", index);
-	RLOGD("[lynq_get_sta_saved_ap][inner_get_param]to get ssid");
         inner_get_param(CTRL_STA, net_no_list[index], "ssid", (*list)[index].base_info.ap_ssid);
-	RLOGD("[lynq_get_sta_saved_ap][inner_get_param]to get mac");
         inner_get_param(CTRL_STA, net_no_list[index], "bssid", (*list)[index].base_info.ap_mac);
-	RLOGD("[lynq_get_sta_saved_ap][inner_get_param]to get auth");
         inner_get_network_auth(CTRL_STA, net_no_list[index], &(*list)[index].base_info.auth);
-	RLOGD("[lynq_get_sta_saved_ap][inner_get_param]to get band");
         if (inner_get_param(CTRL_STA, net_no_list[index], "frequency", freq) == 0)
-	{
+        {
             (*list)[index].base_info.band = convert_band_from_freq(atoi(freq));
         }
         else
-	{
+        {
             (*list)[index].base_info.band = -1;
         }
-	RLOGD("[lynq_get_sta_saved_ap][inner_get_param]to get psw");
+        RLOGD("[lynq_get_sta_saved_ap][inner_get_param]to get psw");
         lynq_sta_ssid_password_get(idx, & (*list)[index].base_info, (*list)[index].base_info.psw);
     }
     RLOGD("[lynq_get_sta_saved_ap] return ok");
