diff options
Diffstat (limited to 'protocols/Tox/src')
-rw-r--r-- | protocols/Tox/src/tox_contacts.cpp | 2 | ||||
-rw-r--r-- | protocols/Tox/src/tox_profile.cpp | 4 | ||||
-rw-r--r-- | protocols/Tox/src/tox_proto.h | 1 |
3 files changed, 6 insertions, 1 deletions
diff --git a/protocols/Tox/src/tox_contacts.cpp b/protocols/Tox/src/tox_contacts.cpp index 7ce9442134..f6e99a5252 100644 --- a/protocols/Tox/src/tox_contacts.cpp +++ b/protocols/Tox/src/tox_contacts.cpp @@ -184,7 +184,7 @@ INT_PTR CToxProto::OnGrantAuth(WPARAM hContact, LPARAM) if (!IsOnline())
return 0;
- ToxBinAddress pubKey = ptrA(getStringA(hContact, TOX_SETTINGS_ID));
+ ToxBinAddress pubKey(ptrA(getStringA(hContact, TOX_SETTINGS_ID)));
TOX_ERR_FRIEND_ADD error;
tox_friend_add_norequest(tox, pubKey, &error);
if (error != TOX_ERR_FRIEND_ADD_OK)
diff --git a/protocols/Tox/src/tox_profile.cpp b/protocols/Tox/src/tox_profile.cpp index 93fb9e9929..89f40d75e7 100644 --- a/protocols/Tox/src/tox_profile.cpp +++ b/protocols/Tox/src/tox_profile.cpp @@ -20,6 +20,8 @@ bool CToxProto::LoadToxProfile(Tox_Options *options) {
debugLogA(__FUNCTION__": loading tox profile");
+ mir_cslock locker(profileLock);
+
size_t size = 0;
uint8_t *data = NULL;
@@ -100,6 +102,8 @@ bool CToxProto::LoadToxProfile(Tox_Options *options) void CToxProto::SaveToxProfile()
{
+ mir_cslock locker(profileLock);
+
size_t size = tox_get_savedata_size(tox);
uint8_t *data = (uint8_t*)mir_calloc(size + TOX_PASS_ENCRYPTION_EXTRA_LENGTH);
tox_get_savedata(tox, data);
diff --git a/protocols/Tox/src/tox_proto.h b/protocols/Tox/src/tox_proto.h index 28d22f2422..36705265f2 100644 --- a/protocols/Tox/src/tox_proto.h +++ b/protocols/Tox/src/tox_proto.h @@ -73,6 +73,7 @@ private: ToxAv *toxAv;
char *password;
mir_cs toxLock;
+ mir_cs profileLock;
TCHAR *accountName;
HANDLE hNetlib, hPollingThread;
bool isTerminated, isConnected;
|