[Bugfix][API-463][API-466][wifi] fix lynq_sta_ssid_password_get & lynq_get_sta_saved_ap

Change-Id: Ic4e674df1744124aa654f9b8af92f753955f0334
diff --git a/src/lynq/lib/liblynq-wifi6/libwifi6.c b/src/lynq/lib/liblynq-wifi6/libwifi6.c
index 37531c6..1424065 100755
--- a/src/lynq/lib/liblynq-wifi6/libwifi6.c
+++ b/src/lynq/lib/liblynq-wifi6/libwifi6.c
@@ -1351,13 +1351,21 @@
 int lynq_sta_ssid_password_get(lynq_wifi_index_e idx, ap_info_s *ap, char *password) { // @todo
 
     FILE * fp;
-    int len, ret;
+    int len, ret, network_len;
     int count, index;
     char *split_lines[128] = {0};
     char *buff, *p;
 
+    network_len = 0;
+    p = NULL;
+
     CHECK_IDX(idx, CTRL_STA);
 
+    if (NULL == password) {
+        printf("bad param\n");
+        return -1;
+    }
+
     fp = fopen("/data/wifi/wg870/wpa_supplicant.conf", "rb");
     if (NULL == fp) {
         printf("open file fail\n");
@@ -1382,7 +1390,8 @@
                  buff[index] = '\0';
                  break;
              }
-             len = buff + index - p;
+             network_len = buff + index - p;
+             break;
         }
 
         if (strstr(p, ap->ap_ssid) != NULL) {
@@ -1390,11 +1399,11 @@
         }
     }
 
-    if (index >= len) {
+    if (index >= len || NULL == p || network_len <= 0) {
         return -1;
     }
 
-    count = lynq_split(p, len, '\n', split_lines);
+    count = lynq_split(p, network_len, '\n', split_lines);
 
     ret = -1;
     for(index=0; index < count; index++) {
@@ -1960,9 +1969,10 @@
 
 int lynq_get_sta_saved_ap(lynq_wifi_index_e idx, saved_ap_info_s ** list, int * len)
 {    
-    int count, index;
+    int count, index, ssid_len;
     int net_no_list[128];
     char freq[16];
+    char *ssid_ptr;
 
     if (list == NULL || len == NULL) {
         printf("bad param\n");
@@ -1977,16 +1987,25 @@
     printf("count is %d\n", count);
 
     *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++) {
         printf("to get ssid %d\n", index);
         inner_get_param(CTRL_STA, net_no_list[index], "ssid", (*list)[index].base_info.ap_ssid);
-        printf("to get bssid\n");
+
+        ssid_ptr = (*list)[index].base_info.ap_ssid;
+        ssid_len = strlen(ssid_ptr);
+        if (ssid_ptr[0] == '\"') {
+            memmove(ssid_ptr, ssid_ptr + 1, ssid_len - 1);
+            ssid_len -= 1;
+        }
+        if (ssid_len > 0 && ssid_ptr[ssid_len - 1] == '\"') {
+            ssid_ptr[ssid_len - 1] = '\0';
+        }
+
         inner_get_param(CTRL_STA, net_no_list[index], "bssid", (*list)[index].base_info.ap_mac);
-        printf("to get inner_get_network_auth\n");
         inner_get_network_auth(CTRL_STA, net_no_list[index], &(*list)[index].base_info.auth);
-        printf("to get frequency\n");
         if (inner_get_param(CTRL_STA, net_no_list[index], "frequency", freq) == 0) {
             (*list)[index].base_info.band = convert_band_from_freq(atoi(freq));
         }
@@ -1994,6 +2013,7 @@
             (*list)[index].base_info.band = -1;
         }
 
+        lynq_sta_ssid_password_get(idx, & (*list)[index].base_info, (*list)[index].base_info.psw);
     }
 
     return 0;