Backport OPENSSL_NONPIC_relocated from HEAD.
This commit is contained in:
parent
ee2bf876c2
commit
89b1fd98ac
2 changed files with 18 additions and 0 deletions
|
@ -480,6 +480,8 @@ const char *CRYPTO_get_lock_name(int type)
|
|||
return(sk_value(app_locks,type-CRYPTO_NUM_LOCKS));
|
||||
}
|
||||
|
||||
int OPENSSL_NONPIC_relocated=0;
|
||||
|
||||
#if defined(_WIN32) && defined(_WINDLL)
|
||||
|
||||
/* All we really need to do is remove the 'error' state when a thread
|
||||
|
@ -491,6 +493,21 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
|
|||
switch(fdwReason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
#if defined(_WIN32_WINNT)
|
||||
{
|
||||
IMAGE_DOS_HEADER *dos_header = (IMAGE_DOS_HEADER *)hinstDLL;
|
||||
IMAGE_NT_HEADERS *nt_headers;
|
||||
|
||||
if (dos_header->e_magic==IMAGE_DOS_SIGNATURE)
|
||||
{
|
||||
nt_headers = (IMAGE_NT_HEADERS *)((char *)dos_header
|
||||
+ dos_header->e_lfanew);
|
||||
if (nt_headers->Signature==IMAGE_NT_SIGNATURE &&
|
||||
histDLL!=(HINSTANCE)(nt_headers->OptionalHeader.ImageBase))
|
||||
OPENSSL_NONPIC_relocated=1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case DLL_THREAD_ATTACH:
|
||||
break;
|
||||
|
|
|
@ -95,6 +95,7 @@ extern "C" {
|
|||
|
||||
void OPENSSL_showfatal(const char *,...);
|
||||
void *OPENSSL_stderr(void);
|
||||
extern int OPENSSL_NONPIC_relocated;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue