diff --git a/src/main/fc/cli.c b/src/main/fc/cli.c index d6507da396..e37d011b0f 100755 --- a/src/main/fc/cli.c +++ b/src/main/fc/cli.c @@ -1595,7 +1595,8 @@ static void cliSerialPassthrough(char *cmdline) int id = -1; uint32_t baud = 0; unsigned mode = 0; - char* tok = strtok(cmdline, " "); + char *saveptr; + char* tok = strtok_r(cmdline, " ", &saveptr); int index = 0; while (tok != NULL) { @@ -1614,7 +1615,7 @@ static void cliSerialPassthrough(char *cmdline) break; } index++; - tok = strtok(NULL, " "); + tok = strtok_r(NULL, " ", &saveptr); } serialPort_t *passThroughPort; @@ -2054,10 +2055,11 @@ static void cliModeColor(char *cmdline) enum {MODE = 0, FUNCTION, COLOR, ARGS_COUNT}; int args[ARGS_COUNT]; int argNo = 0; - char* ptr = strtok(cmdline, " "); + char *saveptr; + char* ptr = strtok_r(cmdline, " ", &saveptr); while (ptr && argNo < ARGS_COUNT) { args[argNo++] = atoi(ptr); - ptr = strtok(NULL, " "); + ptr = strtok_r(NULL, " ", &saveptr); } if (ptr != NULL || argNo != ARGS_COUNT) { @@ -2317,10 +2319,11 @@ static void cliServoMix(char *cmdline) return; } - ptr = strtok(ptr, " "); + char *saveptr; + ptr = strtok_r(ptr, " ", &saveptr); while (ptr != NULL && check < ARGS_COUNT - 1) { args[check++] = atoi(ptr); - ptr = strtok(NULL, " "); + ptr = strtok_r(NULL, " ", &saveptr); } if (ptr == NULL || check != ARGS_COUNT - 1) { @@ -2341,10 +2344,11 @@ static void cliServoMix(char *cmdline) cliServoMix("reverse"); } else { enum {RULE = 0, TARGET, INPUT, RATE, SPEED, MIN, MAX, BOX, ARGS_COUNT}; - char *ptr = strtok(cmdline, " "); + char *saveptr; + ptr = strtok_r(cmdline, " ", &saveptr); while (ptr != NULL && check < ARGS_COUNT) { args[check++] = atoi(ptr); - ptr = strtok(NULL, " "); + ptr = strtok_r(NULL, " ", &saveptr); } if (ptr != NULL || check != ARGS_COUNT) {