darwinssl: don't use strtok()

The GetDarwinVersionNumber() function uses strtok, which is not
thread-safe.
This commit is contained in:
Toby Peterson 2014-08-05 08:58:49 +02:00 committed by Daniel Stenberg
parent ea6d371e7c
commit 0e452a02f1

View File

@ -30,6 +30,7 @@
#include "urldata.h" /* for the SessionHandle definition */
#include "curl_base64.h"
#include "strtok.h"
#ifdef USE_DARWINSSL
@ -782,6 +783,7 @@ CF_INLINE void GetDarwinVersionNumber(int *major, int *minor)
char *os_version;
size_t os_version_len;
char *os_version_major, *os_version_minor/*, *os_version_point*/;
char *tok_buf;
/* Get the Darwin kernel version from the kernel using sysctl(): */
mib[0] = CTL_KERN;
@ -797,9 +799,9 @@ CF_INLINE void GetDarwinVersionNumber(int *major, int *minor)
}
/* Parse the version: */
os_version_major = strtok(os_version, ".");
os_version_minor = strtok(NULL, ".");
/*os_version_point = strtok(NULL, ".");*/
os_version_major = strtok_r(os_version, ".", &tok_buf);
os_version_minor = strtok_r(NULL, ".", &tok_buf);
/*os_version_point = strtok_r(NULL, ".", &tok_buf);*/
*major = atoi(os_version_major);
*minor = atoi(os_version_minor);
free(os_version);