Skip to content

Commit 8e1e4ad

Browse files
committed
actually check for errors when encryting the tox save file
1 parent d05b090 commit 8e1e4ad

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

jni-c-toxcore/jni-c-toxcore.c

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -813,6 +813,11 @@ Tox *create_tox(int udp_enabled, int orbot_enabled, const char *proxy_host, uint
813813

814814
void update_savedata_file(const Tox *tox, const uint8_t *passphrase, size_t passphrase_len)
815815
{
816+
if (tox == NULL)
817+
{
818+
dbg(9, "update_savedata_file:ERROR:tox ptr is NULL");
819+
return;
820+
}
816821
size_t size = tox_get_savedata_size(tox);
817822
// dbg(9, "update_savedata_file:tox_get_savedata_size=%d", (int)size);
818823

@@ -824,6 +829,15 @@ void update_savedata_file(const Tox *tox, const uint8_t *passphrase, size_t pass
824829

825830
char *savedata = calloc(1, size);
826831
// dbg(9, "update_savedata_file:savedata=%p", savedata);
832+
if (tox == NULL)
833+
{
834+
dbg(9, "update_savedata_file:ERROR:tox ptr is NULL");
835+
if(savedata)
836+
{
837+
free(savedata);
838+
}
839+
return;
840+
}
827841
tox_get_savedata(tox, (uint8_t *)savedata);
828842
char *full_path_filename = calloc(1, MAX_FULL_PATH_LENGTH);
829843

@@ -847,12 +861,12 @@ void update_savedata_file(const Tox *tox, const uint8_t *passphrase, size_t pass
847861
// dbg(9, "update_savedata_file:savedata_enc=%p", savedata_enc);
848862
TOX_ERR_ENCRYPTION error;
849863
tox_pass_encrypt((const uint8_t *)savedata, size, passphrase, passphrase_len, savedata_enc, &error);
850-
// dbg(9, "update_savedata_file:tox_pass_encrypt:%d", (int)error);
864+
dbg(9, "update_savedata_file:tox_pass_encrypt:%d", (int)error);
851865
bool res = false;
852866

853-
if(size_enc < TOX_PASS_ENCRYPTION_EXTRA_LENGTH)
867+
if ((size_enc < TOX_PASS_ENCRYPTION_EXTRA_LENGTH) || (error != TOX_ERR_ENCRYPTION_OK))
854868
{
855-
dbg(9, "update_savedata_file:ERROR:size_enc < TOX_PASS_ENCRYPTION_EXTRA_LENGTH");
869+
dbg(9, "update_savedata_file:ERROR:size_enc < TOX_PASS_ENCRYPTION_EXTRA_LENGTH or error != TOX_ERR_ENCRYPTION_OK");
856870
if(savedata)
857871
{
858872
free(savedata);

0 commit comments

Comments
 (0)