summaryrefslogtreecommitdiff
path: root/toxcore
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2014-06-20 10:05:35 -0400
committerirungentoo <irungentoo@gmail.com>2014-06-20 10:05:35 -0400
commit8aa163f40e707993ca0794d6867c1511a07c70b8 (patch)
treee841a09946a6f2a1743053f3af7043ae96c8728d /toxcore
parentaba37b0f712be21332094f9220e4227fb401823d (diff)
parent3206fafe92d3096ee551005adf6c22b2d3a3b0b2 (diff)
Merge branch 'perf-rebase' of https://github.com/tux3/toxcore
Diffstat (limited to 'toxcore')
-rw-r--r--toxcore/Messenger.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c
index 3f913d4c..bb70a44a 100644
--- a/toxcore/Messenger.c
+++ b/toxcore/Messenger.c
@@ -581,9 +581,11 @@ int m_copy_statusmessage(Messenger *m, int32_t friendnumber, uint8_t *buf, uint3
581 if (friend_not_valid(m, friendnumber)) 581 if (friend_not_valid(m, friendnumber))
582 return -1; 582 return -1;
583 583
584 memset(buf, 0, maxlen); 584 int msglen = MIN(maxlen, m->friendlist[friendnumber].statusmessage_length);
585 memcpy(buf, m->friendlist[friendnumber].statusmessage, MIN(maxlen, m->friendlist[friendnumber].statusmessage_length)); 585
586 return MIN(maxlen, m->friendlist[friendnumber].statusmessage_length); 586 memcpy(buf, m->friendlist[friendnumber].statusmessage, msglen);
587 memset(buf + msglen, 0, maxlen - msglen);
588 return msglen;
587} 589}
588 590
589/* return the size of friendnumber's user status. 591/* return the size of friendnumber's user status.
@@ -596,9 +598,10 @@ int m_get_self_statusmessage_size(Messenger *m)
596 598
597int m_copy_self_statusmessage(Messenger *m, uint8_t *buf, uint32_t maxlen) 599int m_copy_self_statusmessage(Messenger *m, uint8_t *buf, uint32_t maxlen)
598{ 600{
599 memset(buf, 0, maxlen); 601 int msglen = MIN(maxlen, m->statusmessage_length);
600 memcpy(buf, m->statusmessage, MIN(maxlen, m->statusmessage_length)); 602 memcpy(buf, m->statusmessage, msglen);
601 return MIN(maxlen, m->statusmessage_length); 603 memset(buf + msglen, 0, maxlen - msglen);
604 return msglen;
602} 605}
603 606
604uint8_t m_get_userstatus(Messenger *m, int32_t friendnumber) 607uint8_t m_get_userstatus(Messenger *m, int32_t friendnumber)
@@ -2693,7 +2696,6 @@ void messenger_save(Messenger *m, uint8_t *data)
2693 memset(relays, 0, len); 2696 memset(relays, 0, len);
2694 copy_connected_tcp_relays(m->net_crypto, relays, NUM_SAVED_TCP_RELAYS); 2697 copy_connected_tcp_relays(m->net_crypto, relays, NUM_SAVED_TCP_RELAYS);
2695 memcpy(data, relays, len); 2698 memcpy(data, relays, len);
2696 data += len;
2697} 2699}
2698 2700
2699static int messenger_load_state_callback(void *outer, const uint8_t *data, uint32_t length, uint16_t type) 2701static int messenger_load_state_callback(void *outer, const uint8_t *data, uint32_t length, uint16_t type)