[bugfix][API-396][SIM]Failure to write a card number causes a coredump

Change-Id: I9ac6fcf54794becf70b15fdae12425b9f54ce7c1
diff --git a/lib/liblynq-sim/src/lynq_sim.cpp b/lib/liblynq-sim/src/lynq_sim.cpp
index 6198ab5..be065df 100755
--- a/lib/liblynq-sim/src/lynq_sim.cpp
+++ b/lib/liblynq-sim/src/lynq_sim.cpp
@@ -519,29 +519,43 @@
         return -1;
     }
     if(strstr(cmd,"ERROR")){
-        // char *test = strchr(cmd, ':')+1;
-        // int len = strlen(cmd);
-        // memcpy(buf, cmd, len);
-        // buf[len] = '\0';
         return 3;
     }
     else{
         int argc = 0;
         char *token;
         token = strtok(cmd, ",");
-        if(strstr(token, "CNUM")){
+        if(strstr(token, "CNUM"))
+        {
             char *string;
             while (token != NULL)
-            {  
+            {
+                if(argc == 5)
+                {
+                    if(NULL == argv[1])
+                    {
+                        return 9002;
+                    }
+                    int lengh = strlen(argv[1]);
+                    memcpy(buf, argv[1], lengh);
+                    delete_char(buf, '"');
+                    RLOGD("too many phone number return\n");
+                    return 0;
+                }
                 string = token;
                 argv[argc++] = string;
                 token = strtok(NULL, ",");
             }
+            if(NULL == argv[1])
+            {
+                return 9001;
+            }
             int lengh = strlen(argv[1]);
             memcpy(buf, argv[1], lengh);
             delete_char(buf, '"');
             return 0;
         }
+        return 9001;
     }
 }