diff options
author | irungentoo <irungentoo@gmail.com> | 2014-06-20 10:05:35 -0400 |
---|---|---|
committer | irungentoo <irungentoo@gmail.com> | 2014-06-20 10:05:35 -0400 |
commit | 8aa163f40e707993ca0794d6867c1511a07c70b8 (patch) | |
tree | e841a09946a6f2a1743053f3af7043ae96c8728d /toxcore | |
parent | aba37b0f712be21332094f9220e4227fb401823d (diff) | |
parent | 3206fafe92d3096ee551005adf6c22b2d3a3b0b2 (diff) |
Merge branch 'perf-rebase' of https://github.com/tux3/toxcore
Diffstat (limited to 'toxcore')
-rw-r--r-- | toxcore/Messenger.c | 16 |
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 | ||
597 | int m_copy_self_statusmessage(Messenger *m, uint8_t *buf, uint32_t maxlen) | 599 | int 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 | ||
604 | uint8_t m_get_userstatus(Messenger *m, int32_t friendnumber) | 607 | uint8_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 | ||
2699 | static int messenger_load_state_callback(void *outer, const uint8_t *data, uint32_t length, uint16_t type) | 2701 | static int messenger_load_state_callback(void *outer, const uint8_t *data, uint32_t length, uint16_t type) |