summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--toxcore/Messenger.c14
-rw-r--r--toxcore/tox.c2
-rw-r--r--toxcore/tox.h4
3 files changed, 9 insertions, 11 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c
index 39572dd0..e85e5ee0 100644
--- a/toxcore/Messenger.c
+++ b/toxcore/Messenger.c
@@ -1115,9 +1115,6 @@ long int new_filesender(const Messenger *m, int32_t friendnumber, uint32_t file_
1115 if (filename_length > MAX_FILENAME_LENGTH) 1115 if (filename_length > MAX_FILENAME_LENGTH)
1116 return -2; 1116 return -2;
1117 1117
1118 if (file_type == FILEKIND_AVATAR && filename_length != crypto_hash_sha256_BYTES)
1119 return -2;
1120
1121 uint32_t i; 1118 uint32_t i;
1122 1119
1123 for (i = 0; i < MAX_CONCURRENT_FILE_PIPES; ++i) { 1120 for (i = 0; i < MAX_CONCURRENT_FILE_PIPES; ++i) {
@@ -2005,10 +2002,15 @@ static int handle_packet(void *object, int i, uint8_t *temp, uint16_t len)
2005 ft->paused = FILE_PAUSE_NOT; 2002 ft->paused = FILE_PAUSE_NOT;
2006 memcpy(ft->id, data + 1 + sizeof(uint32_t) + sizeof(uint64_t), FILE_ID_LENGTH); 2003 memcpy(ft->id, data + 1 + sizeof(uint32_t) + sizeof(uint64_t), FILE_ID_LENGTH);
2007 2004
2008 /* Force NULL terminate file name. */
2009 uint8_t filename_terminated[filename_length + 1]; 2005 uint8_t filename_terminated[filename_length + 1];
2010 memcpy(filename_terminated, data + head_length, filename_length); 2006 uint8_t *filename = NULL;
2011 filename_terminated[filename_length] = 0; 2007
2008 if (filename_length) {
2009 /* Force NULL terminate file name. */
2010 memcpy(filename_terminated, data + head_length, filename_length);
2011 filename_terminated[filename_length] = 0;
2012 filename = filename_terminated;
2013 }
2012 2014
2013 uint32_t real_filenumber = filenumber; 2015 uint32_t real_filenumber = filenumber;
2014 real_filenumber += 1; 2016 real_filenumber += 1;
diff --git a/toxcore/tox.c b/toxcore/tox.c
index b793bd8c..36f87cc6 100644
--- a/toxcore/tox.c
+++ b/toxcore/tox.c
@@ -910,7 +910,7 @@ bool tox_file_get_file_id(const Tox *tox, uint32_t friend_number, uint32_t file_
910uint32_t tox_file_send(Tox *tox, uint32_t friend_number, uint32_t kind, uint64_t file_size, const uint8_t *file_id, 910uint32_t tox_file_send(Tox *tox, uint32_t friend_number, uint32_t kind, uint64_t file_size, const uint8_t *file_id,
911 const uint8_t *filename, size_t filename_length, TOX_ERR_FILE_SEND *error) 911 const uint8_t *filename, size_t filename_length, TOX_ERR_FILE_SEND *error)
912{ 912{
913 if (!filename) { 913 if (filename_length && !filename) {
914 SET_ERROR_PARAMETER(error, TOX_ERR_FILE_SEND_NULL); 914 SET_ERROR_PARAMETER(error, TOX_ERR_FILE_SEND_NULL);
915 return UINT32_MAX; 915 return UINT32_MAX;
916 } 916 }
diff --git a/toxcore/tox.h b/toxcore/tox.h
index b255de5e..8587dfa9 100644
--- a/toxcore/tox.h
+++ b/toxcore/tox.h
@@ -1584,10 +1584,6 @@ typedef enum TOX_ERR_FILE_SEND {
1584 */ 1584 */
1585 TOX_ERR_FILE_SEND_FRIEND_NOT_CONNECTED, 1585 TOX_ERR_FILE_SEND_FRIEND_NOT_CONNECTED,
1586 /** 1586 /**
1587 * Filename length was 0.
1588 */
1589 TOX_ERR_FILE_SEND_NAME_EMPTY,
1590 /**
1591 * Filename length exceeded 255 bytes. 1587 * Filename length exceeded 255 bytes.
1592 */ 1588 */
1593 TOX_ERR_FILE_SEND_NAME_INVALID_LENGTH, 1589 TOX_ERR_FILE_SEND_NAME_INVALID_LENGTH,