diff options
author | Kirill Volinsky <mataes2007@gmail.com> | 2013-02-25 15:48:25 +0000 |
---|---|---|
committer | Kirill Volinsky <mataes2007@gmail.com> | 2013-02-25 15:48:25 +0000 |
commit | 9717de57613d2a5f56895fdf8e674d2c919073e5 (patch) | |
tree | 47bdeea9541114cef52b5995a8e8567124858a56 | |
parent | 50a4d4f0f8191849cf695792de7c914afcd03557 (diff) |
fixed crash in x64
git-svn-id: http://svn.miranda-ng.org/main/trunk@3769 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r-- | protocols/Skype/Skype_11.vcxproj | 8 | ||||
-rw-r--r-- | protocols/Skype/Skype_11.vcxproj.filters | 8 | ||||
-rw-r--r-- | protocols/Skype/src/resource.h | 2 | ||||
-rw-r--r-- | protocols/Skype/src/skype_subclassing.cpp | 16 |
4 files changed, 11 insertions, 23 deletions
diff --git a/protocols/Skype/Skype_11.vcxproj b/protocols/Skype/Skype_11.vcxproj index e5e6537991..9ee8ebf0dd 100644 --- a/protocols/Skype/Skype_11.vcxproj +++ b/protocols/Skype/Skype_11.vcxproj @@ -217,14 +217,6 @@ <ResourceCompile Include="res\Version.rc" />
<ResourceCompile Include="res\Resource.rc" />
</ItemGroup>
- <ItemGroup>
- <None Include="..\..\..\SkypeKit\keypair.bin" />
- <None Include="..\..\..\SkypeKit\SDK\bin\windows-x86\windows-x86-skypekit.exe" />
- <None Include="res\auth_grant.ico" />
- <None Include="res\auth_request.ico" />
- <None Include="res\auth_revoke.ico" />
- <None Include="res\Main.ico" />
- </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
diff --git a/protocols/Skype/Skype_11.vcxproj.filters b/protocols/Skype/Skype_11.vcxproj.filters index 72884a0675..f3c307bd41 100644 --- a/protocols/Skype/Skype_11.vcxproj.filters +++ b/protocols/Skype/Skype_11.vcxproj.filters @@ -101,12 +101,4 @@ <Filter>Resource Filess</Filter>
</ResourceCompile>
</ItemGroup>
- <ItemGroup>
- <None Include="res\Main.ico" />
- <None Include="res\auth_grant.ico" />
- <None Include="res\auth_request.ico" />
- <None Include="res\auth_revoke.ico" />
- <None Include="..\..\..\SkypeKit\SDK\bin\windows-x86\windows-x86-skypekit.exe" />
- <None Include="..\..\..\SkypeKit\keypair.bin" />
- </ItemGroup>
</Project>
\ No newline at end of file diff --git a/protocols/Skype/src/resource.h b/protocols/Skype/src/resource.h index 053e98e51e..c6c95bbde4 100644 --- a/protocols/Skype/src/resource.h +++ b/protocols/Skype/src/resource.h @@ -8,6 +8,7 @@ #define IDD_OPT_MAIN 10
#define IDD_INFO_SKYPE 11
#define IDD_OWNINFO_SKYPE 12
+#define IDD_PASSWORD_CHANGE 13
#define IDD_CHATROOM_INVITE 40
#define IDI_ICON 101
#define IDR_RUNTIME 102
@@ -17,7 +18,6 @@ #define IDD_PASSWORDREQUEST 106
#define IDD_PASSWORD_REQUEST 106
#define IDR_KEY 107
-#define IDD_PASSWORD_CHANGE 107
#define IDC_CCLIST 173
#define IDC_EDITSCR 174
#define IDC_ADDSCR 175
diff --git a/protocols/Skype/src/skype_subclassing.cpp b/protocols/Skype/src/skype_subclassing.cpp index 7c7d91d3eb..10bdecf9d5 100644 --- a/protocols/Skype/src/skype_subclassing.cpp +++ b/protocols/Skype/src/skype_subclassing.cpp @@ -116,7 +116,7 @@ Cleanup: char *CSkype::LoadKeyPair(HINSTANCE hInstance)
{
- HRSRC hRes = FindResource(hInstance, MAKEINTRESOURCE(/*IDR_KEY*/107), L"BIN");
+ HRSRC hRes = FindResource(hInstance, MAKEINTRESOURCE(IDR_KEY), L"BIN");
if (hRes)
{
HGLOBAL hResource = LoadResource(hInstance, hRes);
@@ -127,11 +127,12 @@ char *CSkype::LoadKeyPair(HINSTANCE hInstance) int basedecoded = Base64::Decode(MY_KEY, (char *)key, MAX_PATH);
::aes_set_key(&ctx, key, 128);
+ memset(key, 0, sizeof(key));
- int dwResSize = ::SizeofResource(hInstance, hRes);
- char *pData = (char *)::GlobalLock(hResource);
- basedecoded = dwResSize;
- ::GlobalUnlock(hResource);
+ basedecoded = ::SizeofResource(hInstance, hRes);
+ char *pData = (char *)hResource;
+ if (!pData)
+ return NULL;
unsigned char *bufD = (unsigned char*)::malloc(basedecoded + 1);
unsigned char *tmpD = (unsigned char*)::malloc(basedecoded + 1);
@@ -274,7 +275,10 @@ CSkype *CSkype::GetInstance(HINSTANCE hInstance, const wchar_t *profileName, con int port = 8963;
if (!CSkype::StartSkypeRuntime(hInstance, profileName, port, dbPath)) return NULL;
- char *keyPair = CSkype::LoadKeyPair(hInstance);
+
+ char *keyPair = CSkype::LoadKeyPair(hInstance);
+ if (!keyPair)
+ return NULL;
CSkype *skype = new CSkype();
TransportInterface::Status status = skype->init(keyPair, "127.0.0.1", port, 0, 2, 3);
|