summaryrefslogtreecommitdiffstats
path: root/src/ccapi/common/win/tls.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ccapi/common/win/tls.c')
-rw-r--r--src/ccapi/common/win/tls.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ccapi/common/win/tls.c b/src/ccapi/common/win/tls.c
index 48a5bd5a4..5743ddb20 100644
--- a/src/ccapi/common/win/tls.c
+++ b/src/ccapi/common/win/tls.c
@@ -100,7 +100,13 @@ BOOL WINAPI GetTspData(DWORD dwTlsIndex, struct tspdata** pdw) {
struct tspdata* pData; // The stored memory pointer
pData = (struct tspdata*)TlsGetValue(dwTlsIndex);
- if (pData == NULL) return FALSE;
+ if (pData == NULL) {
+ pData = malloc(sizeof(*pData));
+ if (pData == NULL)
+ return FALSE;
+ memset(pData, 0, sizeof(*pData));
+ TlsSetValue(dwTlsIndex, pData);
+ }
(*pdw) = pData;
return TRUE;
}