diff options
author | George Hazan <ghazan@miranda.im> | 2018-05-28 23:05:07 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2018-05-28 23:05:07 +0300 |
commit | 0c8b7f165374f96e5284f9b15c2eb1fdfe3e68f7 (patch) | |
tree | 11eaae7510b7c461592d377cf942158c2413a4ac /src | |
parent | ca55ac7905e8ffd1ee979b5b5fe7121fa7a03a5d (diff) |
solves problems with XP compatibility
Diffstat (limited to 'src')
-rw-r--r-- | src/mir_app/src/dll_sniffer.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mir_app/src/dll_sniffer.cpp b/src/mir_app/src/dll_sniffer.cpp index 639d12b91e..875bc6b94e 100644 --- a/src/mir_app/src/dll_sniffer.cpp +++ b/src/mir_app/src/dll_sniffer.cpp @@ -180,9 +180,14 @@ MUUID* GetPluginInterfaces(const wchar_t *ptszFileName, bool &bIsPlugin) // patch version
if (dwVersion) {
+ BYTE *pVersionRes = &pSecStart[dwVersion];
+ size_t cbLen = *(WORD*)pVersionRes;
+ mir_ptr<BYTE> pData((BYTE*)mir_alloc(cbLen));
+ memcpy(pData, pVersionRes, cbLen);
+
UINT blockSize;
VS_FIXEDFILEINFO *vsffi;
- VerQueryValue(&pSecStart[dwVersion], L"\\", (PVOID*)&vsffi, &blockSize);
+ VerQueryValue(pData, L"\\", (PVOID*)&vsffi, &blockSize);
UINT v[4] = { MIRANDA_VERSION_COREVERSION };
if (MAKELONG(v[1], v[0]) == (int)vsffi->dwProductVersionMS && MAKELONG(v[3], v[2]) == (int)vsffi->dwProductVersionLS)
|