summaryrefslogtreecommitdiff
path: root/protocols/Tox/src
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Tox/src')
-rw-r--r--protocols/Tox/src/tox_contacts.cpp2
-rw-r--r--protocols/Tox/src/tox_profile.cpp4
-rw-r--r--protocols/Tox/src/tox_proto.h1
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;