summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2018-05-28 23:05:07 +0300
committerGeorge Hazan <ghazan@miranda.im>2018-05-28 23:05:07 +0300
commit0c8b7f165374f96e5284f9b15c2eb1fdfe3e68f7 (patch)
tree11eaae7510b7c461592d377cf942158c2413a4ac /src
parentca55ac7905e8ffd1ee979b5b5fe7121fa7a03a5d (diff)
solves problems with XP compatibility
Diffstat (limited to 'src')
-rw-r--r--src/mir_app/src/dll_sniffer.cpp7
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)