summaryrefslogtreecommitdiff
path: root/toxcore/Messenger.c
diff options
context:
space:
mode:
Diffstat (limited to 'toxcore/Messenger.c')
-rw-r--r--toxcore/Messenger.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c
index a5d15a34..416b937c 100644
--- a/toxcore/Messenger.c
+++ b/toxcore/Messenger.c
@@ -717,7 +717,9 @@ int m_copy_statusmessage(const Messenger *m, int32_t friendnumber, uint8_t *buf,
717 return -1; 717 return -1;
718 } 718 }
719 719
720 int msglen = MIN(maxlen, m->friendlist[friendnumber].statusmessage_length); 720 // TODO(iphydf): This should be uint16_t and min_u16. If maxlen exceeds
721 // uint16_t's range, it won't affect the result.
722 uint32_t msglen = min_u32(maxlen, m->friendlist[friendnumber].statusmessage_length);
721 723
722 memcpy(buf, m->friendlist[friendnumber].statusmessage, msglen); 724 memcpy(buf, m->friendlist[friendnumber].statusmessage, msglen);
723 memset(buf + msglen, 0, maxlen - msglen); 725 memset(buf + msglen, 0, maxlen - msglen);
@@ -2855,9 +2857,10 @@ static uint32_t friends_list_save(const Messenger *m, uint8_t *data)
2855 memcpy(temp.real_pk, m->friendlist[i].real_pk, CRYPTO_PUBLIC_KEY_SIZE); 2857 memcpy(temp.real_pk, m->friendlist[i].real_pk, CRYPTO_PUBLIC_KEY_SIZE);
2856 2858
2857 if (temp.status < 3) { 2859 if (temp.status < 3) {
2860 // TODO(iphydf): Use uint16_t and min_u16 here.
2858 const size_t friendrequest_length = 2861 const size_t friendrequest_length =
2859 MIN(m->friendlist[i].info_size, 2862 min_u32(m->friendlist[i].info_size,
2860 MIN(SAVED_FRIEND_REQUEST_SIZE, MAX_FRIEND_REQUEST_DATA_SIZE)); 2863 min_u32(SAVED_FRIEND_REQUEST_SIZE, MAX_FRIEND_REQUEST_DATA_SIZE));
2861 memcpy(temp.info, m->friendlist[i].info, friendrequest_length); 2864 memcpy(temp.info, m->friendlist[i].info, friendrequest_length);
2862 2865
2863 temp.info_size = net_htons(m->friendlist[i].info_size); 2866 temp.info_size = net_htons(m->friendlist[i].info_size);