darwinssl: don't use strtok()
The GetDarwinVersionNumber() function uses strtok, which is not thread-safe.
This commit is contained in:
committed by
Daniel Stenberg
parent
ea6d371e7c
commit
0e452a02f1
@@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
#include "urldata.h" /* for the SessionHandle definition */
|
#include "urldata.h" /* for the SessionHandle definition */
|
||||||
#include "curl_base64.h"
|
#include "curl_base64.h"
|
||||||
|
#include "strtok.h"
|
||||||
|
|
||||||
#ifdef USE_DARWINSSL
|
#ifdef USE_DARWINSSL
|
||||||
|
|
||||||
@@ -782,6 +783,7 @@ CF_INLINE void GetDarwinVersionNumber(int *major, int *minor)
|
|||||||
char *os_version;
|
char *os_version;
|
||||||
size_t os_version_len;
|
size_t os_version_len;
|
||||||
char *os_version_major, *os_version_minor/*, *os_version_point*/;
|
char *os_version_major, *os_version_minor/*, *os_version_point*/;
|
||||||
|
char *tok_buf;
|
||||||
|
|
||||||
/* Get the Darwin kernel version from the kernel using sysctl(): */
|
/* Get the Darwin kernel version from the kernel using sysctl(): */
|
||||||
mib[0] = CTL_KERN;
|
mib[0] = CTL_KERN;
|
||||||
@@ -797,9 +799,9 @@ CF_INLINE void GetDarwinVersionNumber(int *major, int *minor)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Parse the version: */
|
/* Parse the version: */
|
||||||
os_version_major = strtok(os_version, ".");
|
os_version_major = strtok_r(os_version, ".", &tok_buf);
|
||||||
os_version_minor = strtok(NULL, ".");
|
os_version_minor = strtok_r(NULL, ".", &tok_buf);
|
||||||
/*os_version_point = strtok(NULL, ".");*/
|
/*os_version_point = strtok_r(NULL, ".", &tok_buf);*/
|
||||||
*major = atoi(os_version_major);
|
*major = atoi(os_version_major);
|
||||||
*minor = atoi(os_version_minor);
|
*minor = atoi(os_version_minor);
|
||||||
free(os_version);
|
free(os_version);
|
||||||
|
|||||||
Reference in New Issue
Block a user