From d1c52788c5d4ec5f782df02f6851a74f5dff7da2 Mon Sep 17 00:00:00 2001 From: Tyler Bunnell Date: Sun, 1 Sep 2013 20:42:59 -0600 Subject: Fix signed/unsigned comparison warnings --- toxcore/Messenger.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'toxcore/Messenger.c') diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index 70623611..33c37b06 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c @@ -28,6 +28,9 @@ static void set_friend_status(Messenger *m, int friendnumber, uint8_t status); static int write_cryptpacket_id(Messenger *m, int friendnumber, uint8_t packet_id, uint8_t *data, uint32_t length); +// friend_is_valid determines if the friendnumber passed is valid in the Messenger object +static uint8_t friend_is_valid(int friendnumber, Messenger *m) { return friendnumber < 0 || (uint32_t)friendnumber >= m->numfriends; } + /* return 1 if we are online. * return 0 if we are offline. * static uint8_t online; @@ -76,7 +79,7 @@ int getfriend_id(Messenger *m, uint8_t *client_id) */ int getclient_id(Messenger *m, int friend_id, uint8_t *client_id) { - if (friend_id >= m->numfriends || friend_id < 0) + if (friend_is_valid(friend_id,m)) return -1; if (m->friendlist[friend_id].status > 0) { @@ -246,7 +249,7 @@ int m_addfriend_norequest(Messenger *m, uint8_t *client_id) */ int m_delfriend(Messenger *m, int friendnumber) { - if (friendnumber >= m->numfriends || friendnumber < 0) + if (friend_is_valid(friendnumber,m)) return -1; DHT_delfriend(m->dht, m->friendlist[friendnumber].client_id); @@ -276,7 +279,7 @@ int m_delfriend(Messenger *m, int friendnumber) */ int m_friendstatus(Messenger *m, int friendnumber) { - if (friendnumber < 0 || friendnumber >= m->numfriends) + if (friend_is_valid(friendnumber,m)) return NOFRIEND; return m->friendlist[friendnumber].status; @@ -288,7 +291,7 @@ int m_friendstatus(Messenger *m, int friendnumber) */ uint32_t m_sendmessage(Messenger *m, int friendnumber, uint8_t *message, uint32_t length) { - if (friendnumber < 0 || friendnumber >= m->numfriends) + if (friend_is_valid(friendnumber,m)) return 0; uint32_t msgid = ++m->friendlist[friendnumber].message_id; @@ -341,7 +344,7 @@ static int m_sendname(Messenger *m, int friendnumber, uint8_t *name, uint16_t le */ static int setfriendname(Messenger *m, int friendnumber, uint8_t *name) { - if (friendnumber >= m->numfriends || friendnumber < 0) + if (friend_is_valid(friendnumber,m)) return -1; memcpy(m->friendlist[friendnumber].name, name, MAX_NAME_LENGTH); @@ -395,7 +398,7 @@ uint16_t getself_name(Messenger *m, uint8_t *name, uint16_t nlen) */ int getname(Messenger *m, int friendnumber, uint8_t *name) { - if (friendnumber >= m->numfriends || friendnumber < 0) + if (friend_is_valid(friendnumber,m)) return -1; memcpy(name, m->friendlist[friendnumber].name, MAX_NAME_LENGTH); @@ -438,7 +441,7 @@ int m_set_userstatus(Messenger *m, USERSTATUS status) */ int m_get_statusmessage_size(Messenger *m, int friendnumber) { - if (friendnumber >= m->numfriends || friendnumber < 0) + if (friend_is_valid(friendnumber,m)) return -1; return m->friendlist[friendnumber].statusmessage_length; @@ -449,7 +452,7 @@ int m_get_statusmessage_size(Messenger *m, int friendnumber) */ int m_copy_statusmessage(Messenger *m, int friendnumber, uint8_t *buf, uint32_t maxlen) { - if (friendnumber >= m->numfriends || friendnumber < 0) + if (friend_is_valid(friendnumber,m)) return -1; memset(buf, 0, maxlen); @@ -466,7 +469,7 @@ int m_copy_self_statusmessage(Messenger *m, uint8_t *buf, uint32_t maxlen) USERSTATUS m_get_userstatus(Messenger *m, int friendnumber) { - if (friendnumber >= m->numfriends || friendnumber < 0) + if (friend_is_valid(friendnumber,m)) return USERSTATUS_INVALID; USERSTATUS status = m->friendlist[friendnumber].userstatus; @@ -502,7 +505,7 @@ static int send_ping(Messenger *m, int friendnumber) static int set_friend_statusmessage(Messenger *m, int friendnumber, uint8_t *status, uint16_t length) { - if (friendnumber >= m->numfriends || friendnumber < 0) + if (friend_is_valid(friendnumber,m)) return -1; uint8_t *newstatus = calloc(length, 1); @@ -524,7 +527,7 @@ void m_set_sends_receipts(Messenger *m, int friendnumber, int yesno) if (yesno != 0 || yesno != 1) return; - if (friendnumber >= m->numfriends || friendnumber < 0) + if (friend_is_valid(friendnumber,m)) return; m->friendlist[friendnumber].receives_read_receipts = yesno; @@ -606,7 +609,7 @@ void set_friend_status(Messenger *m, int friendnumber, uint8_t status) int write_cryptpacket_id(Messenger *m, int friendnumber, uint8_t packet_id, uint8_t *data, uint32_t length) { - if (friendnumber < 0 || friendnumber >= m->numfriends) + if (friend_is_valid(friendnumber,m)) return 0; if (length >= MAX_DATA_SIZE || m->friendlist[friendnumber].status != FRIEND_ONLINE) @@ -853,7 +856,7 @@ void doFriends(Messenger *m) case PACKET_ID_RECEIPT: { uint32_t msgid; - if (data_length < sizeof(msgid)) + if (data_length < 0 || (uint32_t)data_length < sizeof(msgid)) break; memcpy(&msgid, data, sizeof(msgid)); @@ -959,7 +962,7 @@ void Messenger_save(Messenger *m, uint8_t *data) /* Load the messenger from data of size length. */ int Messenger_load(Messenger *m, uint8_t *data, uint32_t length) { - if (length == ~0) + if (length == ~((uint32_t)0)) return -1; if (length < crypto_box_PUBLICKEYBYTES + crypto_box_SECRETKEYBYTES + sizeof(uint32_t) * 3) -- cgit v1.2.3