[http/jsonapi] Use strtok_r instead of strtok

This commit is contained in:
chme 2018-12-31 08:26:40 +01:00
parent 3de2418b49
commit 0f4cbb3375
2 changed files with 15 additions and 11 deletions

View File

@ -597,6 +597,7 @@ metadata_packet_get(struct http_icy_metadata *metadata, AVFormatContext *fmtctx)
{ {
uint8_t *buffer; uint8_t *buffer;
char *icy_token; char *icy_token;
char *save_pr;
char *ptr; char *ptr;
char *end; char *end;
@ -604,13 +605,13 @@ metadata_packet_get(struct http_icy_metadata *metadata, AVFormatContext *fmtctx)
if (!buffer) if (!buffer)
return -1; return -1;
icy_token = strtok((char *)buffer, ";"); icy_token = strtok_r((char *)buffer, ";", &save_pr);
while (icy_token != NULL) while (icy_token != NULL)
{ {
ptr = strchr(icy_token, '='); ptr = strchr(icy_token, '=');
if (!ptr || (ptr[1] == '\0')) if (!ptr || (ptr[1] == '\0'))
{ {
icy_token = strtok(NULL, ";"); icy_token = strtok_r(NULL, ";", &save_pr);
continue; continue;
} }
@ -647,7 +648,7 @@ metadata_packet_get(struct http_icy_metadata *metadata, AVFormatContext *fmtctx)
if (end) if (end)
*end = '\''; *end = '\'';
icy_token = strtok(NULL, ";"); icy_token = strtok_r(NULL, ";", &save_pr);
} }
av_free(buffer); av_free(buffer);
@ -663,6 +664,7 @@ metadata_header_get(struct http_icy_metadata *metadata, AVFormatContext *fmtctx)
uint8_t *buffer; uint8_t *buffer;
uint8_t *utf; uint8_t *utf;
char *icy_token; char *icy_token;
char *save_pr;
char *ptr; char *ptr;
av_opt_get(fmtctx, "icy_metadata_headers", AV_OPT_SEARCH_CHILDREN, &buffer); av_opt_get(fmtctx, "icy_metadata_headers", AV_OPT_SEARCH_CHILDREN, &buffer);
@ -677,13 +679,13 @@ metadata_header_get(struct http_icy_metadata *metadata, AVFormatContext *fmtctx)
if (!utf) if (!utf)
return -1; return -1;
icy_token = strtok((char *)utf, "\r\n"); icy_token = strtok_r((char *)utf, "\r\n", &save_pr);
while (icy_token != NULL) while (icy_token != NULL)
{ {
ptr = strchr(icy_token, ':'); ptr = strchr(icy_token, ':');
if (!ptr || (ptr[1] == '\0')) if (!ptr || (ptr[1] == '\0'))
{ {
icy_token = strtok(NULL, "\r\n"); icy_token = strtok_r(NULL, "\r\n", &save_pr);
continue; continue;
} }
@ -698,7 +700,7 @@ metadata_header_get(struct http_icy_metadata *metadata, AVFormatContext *fmtctx)
else if ((strncmp(icy_token, "icy-genre", strlen("icy-genre")) == 0) && !metadata->genre) else if ((strncmp(icy_token, "icy-genre", strlen("icy-genre")) == 0) && !metadata->genre)
metadata->genre = strdup(ptr); metadata->genre = strdup(ptr);
icy_token = strtok(NULL, "\r\n"); icy_token = strtok_r(NULL, "\r\n", &save_pr);
} }
free(utf); free(utf);

View File

@ -1756,21 +1756,23 @@ queue_tracks_add_byuris(const char *param, int pos, int *total_count)
{ {
char *uris; char *uris;
char *uri; char *uri;
char *ptr;
const char *id; const char *id;
int count = 0; int count = 0;
int ret = 0; int ret = 0;
*total_count = 0; *total_count = 0;
if (strlen(param) == 0) CHECK_NULL(L_WEB, uris = strdup(param));
uri = strtok_r(uris, ",", &ptr);
if (!uri)
{ {
DPRINTF(E_LOG, L_WEB, "Empty query parameter 'uris'\n"); DPRINTF(E_LOG, L_WEB, "Empty query parameter 'uris'\n");
free(uris);
return -1; return -1;
} }
uris = strdup(param);
uri = strtok(uris, ",");
do do
{ {
count = 0; count = 0;
@ -1811,7 +1813,7 @@ queue_tracks_add_byuris(const char *param, int pos, int *total_count)
*total_count += count; *total_count += count;
} }
while ((uri = strtok(NULL, ","))); while ((uri = strtok_r(NULL, ",", &ptr)));
free(uris); free(uris);