Introduce OPENSSL_NONPIC_relocated to denote relocated DLLs.
This commit is contained in:
parent
8861ba355d
commit
51d28013db
2 changed files with 17 additions and 0 deletions
|
@ -545,6 +545,7 @@ const char *CRYPTO_get_lock_name(int type)
|
|||
|
||||
unsigned long OPENSSL_ia32cap_P=0;
|
||||
unsigned long *OPENSSL_ia32cap_loc(void) { return &OPENSSL_ia32cap_P; }
|
||||
int OPENSSL_NONPIC_relocated=0;
|
||||
|
||||
#if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY)
|
||||
#define OPENSSL_CPUID_SETUP
|
||||
|
@ -589,6 +590,21 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
|
|||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
OPENSSL_cpuid_setup();
|
||||
#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;
|
||||
|
|
|
@ -97,6 +97,7 @@ void OPENSSL_cpuid_setup(void);
|
|||
extern unsigned long OPENSSL_ia32cap_P;
|
||||
void OPENSSL_showfatal(const char *,...);
|
||||
void *OPENSSL_stderr(void);
|
||||
extern int OPENSSL_NONPIC_relocated;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue