diff options
Diffstat (limited to 'src/ccapi/common/win/tls.c')
-rw-r--r-- | src/ccapi/common/win/tls.c | 8 |
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; } |