Loading crypto/cryptlib.c +59 −1 Original line number Diff line number Diff line Loading @@ -270,7 +270,7 @@ int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file, #if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__INTEL__) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64) unsigned long OPENSSL_ia32cap_P=0; unsigned long *OPENSSL_ia32cap_loc(void) { return &OPENSSL_ia32cap_P; } Loading Loading @@ -306,6 +306,62 @@ void OPENSSL_cpuid_setup(void) {} #endif #if (defined(_WIN32) || defined(__CYGWIN__)) && defined(_WINDLL) #ifdef OPENSSL_FIPS #include <tlhelp32.h> #if defined(__GNUC__) && __GNUC__>=2 static int DllInit(void) __attribute__((constructor)); #elif defined(_MSC_VER) static int DllInit(void); # ifdef _WIN64 # pragma section(".CRT$XCU",read) __declspec(allocate(".CRT$XCU")) # else # pragma data_seg(".CRT$XCU") # endif static int (*p)(void) = DllInit; # pragma data_seg() #endif static int DllInit(void) { #if defined(_WIN32_WINNT) union { int(*f)(void); BYTE *p; } t = { DllInit }; HANDLE hModuleSnap = INVALID_HANDLE_VALUE; IMAGE_DOS_HEADER *dos_header; IMAGE_NT_HEADERS *nt_headers; MODULEENTRY32 me32 = {sizeof(me32)}; hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,0); if (hModuleSnap != INVALID_HANDLE_VALUE && Module32First(hModuleSnap,&me32)) do { if (t.p >= me32.modBaseAddr && t.p < me32.modBaseAddr+me32.modBaseSize) { dos_header=(IMAGE_DOS_HEADER *)me32.modBaseAddr; if (dos_header->e_magic==IMAGE_DOS_SIGNATURE) { nt_headers=(IMAGE_NT_HEADERS *) ((BYTE *)dos_header+dos_header->e_lfanew); if (nt_headers->Signature==IMAGE_NT_SIGNATURE && me32.modBaseAddr!=(BYTE*)nt_headers->OptionalHeader.ImageBase) OPENSSL_NONPIC_relocated=1; } break; } } while (Module32Next(hModuleSnap,&me32)); if (hModuleSnap != INVALID_HANDLE_VALUE) CloseHandle(hModuleSnap); #endif OPENSSL_cpuid_setup(); return 0; } #else #ifdef __CYGWIN__ /* pick DLL_[PROCESS|THREAD]_[ATTACH|DETACH] definitions */ #include <windows.h> Loading Loading @@ -349,6 +405,8 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, } #endif #endif #if defined(_WIN32) && !defined(__CYGWIN__) #include <tchar.h> Loading Loading
crypto/cryptlib.c +59 −1 Original line number Diff line number Diff line Loading @@ -270,7 +270,7 @@ int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file, #if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__INTEL__) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64) unsigned long OPENSSL_ia32cap_P=0; unsigned long *OPENSSL_ia32cap_loc(void) { return &OPENSSL_ia32cap_P; } Loading Loading @@ -306,6 +306,62 @@ void OPENSSL_cpuid_setup(void) {} #endif #if (defined(_WIN32) || defined(__CYGWIN__)) && defined(_WINDLL) #ifdef OPENSSL_FIPS #include <tlhelp32.h> #if defined(__GNUC__) && __GNUC__>=2 static int DllInit(void) __attribute__((constructor)); #elif defined(_MSC_VER) static int DllInit(void); # ifdef _WIN64 # pragma section(".CRT$XCU",read) __declspec(allocate(".CRT$XCU")) # else # pragma data_seg(".CRT$XCU") # endif static int (*p)(void) = DllInit; # pragma data_seg() #endif static int DllInit(void) { #if defined(_WIN32_WINNT) union { int(*f)(void); BYTE *p; } t = { DllInit }; HANDLE hModuleSnap = INVALID_HANDLE_VALUE; IMAGE_DOS_HEADER *dos_header; IMAGE_NT_HEADERS *nt_headers; MODULEENTRY32 me32 = {sizeof(me32)}; hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,0); if (hModuleSnap != INVALID_HANDLE_VALUE && Module32First(hModuleSnap,&me32)) do { if (t.p >= me32.modBaseAddr && t.p < me32.modBaseAddr+me32.modBaseSize) { dos_header=(IMAGE_DOS_HEADER *)me32.modBaseAddr; if (dos_header->e_magic==IMAGE_DOS_SIGNATURE) { nt_headers=(IMAGE_NT_HEADERS *) ((BYTE *)dos_header+dos_header->e_lfanew); if (nt_headers->Signature==IMAGE_NT_SIGNATURE && me32.modBaseAddr!=(BYTE*)nt_headers->OptionalHeader.ImageBase) OPENSSL_NONPIC_relocated=1; } break; } } while (Module32Next(hModuleSnap,&me32)); if (hModuleSnap != INVALID_HANDLE_VALUE) CloseHandle(hModuleSnap); #endif OPENSSL_cpuid_setup(); return 0; } #else #ifdef __CYGWIN__ /* pick DLL_[PROCESS|THREAD]_[ATTACH|DETACH] definitions */ #include <windows.h> Loading Loading @@ -349,6 +405,8 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, } #endif #endif #if defined(_WIN32) && !defined(__CYGWIN__) #include <tchar.h> Loading