[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;
}
}