diff options
-rw-r--r-- | toxcore/Messenger.c | 14 | ||||
-rw-r--r-- | toxcore/tox.c | 2 | ||||
-rw-r--r-- | toxcore/tox.h | 4 |
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_ | |||
910 | uint32_t tox_file_send(Tox *tox, uint32_t friend_number, uint32_t kind, uint64_t file_size, const uint8_t *file_id, | 910 | uint32_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, |