From a19862fc47ddd28dbd855243186d8f476d68bebd Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Wed, 13 Oct 1999 13:46:24 +0000 Subject: [PATCH] Small hack to check if we need to relocate the TLS directory or not (some seem to need this pointer relocateable, some already do relocate it by themselves). --- loader/pe_image.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/loader/pe_image.c b/loader/pe_image.c index 7770dbbb135..ac17fc70472 100644 --- a/loader/pe_image.c +++ b/loader/pe_image.c @@ -1056,7 +1056,12 @@ void PE_InitTls( void ) if ( pem->tlsindex == -1 ) { pem->tlsindex = TlsAlloc(); - *pdir->AddressOfIndex=pem->tlsindex; + if ((((DWORD)pdir->AddressOfIndex)>peh->OptionalHeader.ImageBase) + &&(((DWORD)pdir->AddressOfIndex)OptionalHeader.ImageBase+peh->OptionalHeader.SizeOfImage) + ) + *pdir->AddressOfIndex=pem->tlsindex; + else + *(LPDWORD)((((char*)pdir->AddressOfIndex)+delta))=pem->tlsindex; } datasize= pdir->EndAddressOfRawData-pdir->StartAddressOfRawData; size = datasize + pdir->SizeOfZeroFill;