Skip to content

Commit 67b1083

Browse files
committed
Don't use strtok(3)
strtok(3) is not re-entrant, use strtok_r(3).
1 parent 67e736a commit 67b1083

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

kubernetes/config/authn_plugin/plugins/oidc/libkubernetes_oidc.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
static time_t get_token_expiration_time(const char *token_string)
3030
{
3131
static char fname[] = "get_token_expiration_time()";
32+
char *last;
3233

3334
time_t expiration_time = 0;
3435

@@ -41,12 +42,12 @@ static time_t get_token_expiration_time(const char *token_string)
4142
}
4243

4344
char *p = NULL;
44-
p = strtok(dup_token_string, OIDC_ID_TOKEN_DELIM); /* jwt header */
45+
p = strtok_r(dup_token_string, OIDC_ID_TOKEN_DELIM, &last); /* jwt header */
4546
if (!p) {
4647
fprintf(stderr, "%s: The token <%s> is not a valid JWT token.\n", fname, token_string);
4748
goto end;
4849
}
49-
p = strtok(NULL, OIDC_ID_TOKEN_DELIM); /* jwt part2 */
50+
p = strtok_r(NULL, OIDC_ID_TOKEN_DELIM, &last); /* jwt part2 */
5051
if (!p) {
5152
fprintf(stderr, "%s: The token <%s> is not a valid JWT token.\n", fname, token_string);
5253
goto end;

kubernetes/watch/watch_util.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111
static int wu_convert_to_json_array(list_t * json_array, const char *json_string)
1212
{
13+
char *last;
14+
1315
if (!json_string || '\0' == json_string[0] || !json_array) {
1416
return -1;
1517
}
@@ -18,7 +20,7 @@ static int wu_convert_to_json_array(list_t * json_array, const char *json_string
1820
char *json_string_dup = strdup(json_string);
1921

2022
char *token = NULL;
21-
token = strtok(json_string_dup, JSON_ARRAY_DELIM);
23+
token = strtok_r(json_string_dup, JSON_ARRAY_DELIM, &last);
2224
while (token) {
2325
cJSON *cjson = cJSON_Parse(token);
2426
if (cjson == NULL) {
@@ -27,7 +29,7 @@ static int wu_convert_to_json_array(list_t * json_array, const char *json_string
2729
}
2830
cJSON_Delete(cjson);
2931
list_addElement(json_array, strdup(token));
30-
token = strtok(NULL, JSON_ARRAY_DELIM);
32+
token = strtok_r(NULL, JSON_ARRAY_DELIM, &last);
3133
}
3234

3335
end:

0 commit comments

Comments
 (0)