diff options
author | iphydf <iphydf@users.noreply.github.com> | 2016-09-05 18:05:33 +0100 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2016-09-05 23:03:21 +0100 |
commit | 8121ace449d552d53798ca768a74b9be112c7b8b (patch) | |
tree | 50170ae31fd5508cf5fb4f6b50284819a6ca54bc | |
parent | aa0e3974c5e1d665051ae49a4e4d547fa5f63c30 (diff) |
Make packet data a ptr-to-const.
Ensure that nobody inadvertly modifies the temporary packet data buffer.
-rw-r--r-- | toxcore/Messenger.c | 10 | ||||
-rw-r--r-- | toxcore/friend_connection.c | 5 | ||||
-rw-r--r-- | toxcore/friend_connection.h | 5 | ||||
-rw-r--r-- | toxcore/net_crypto.c | 2 | ||||
-rw-r--r-- | toxcore/net_crypto.h | 4 |
5 files changed, 14 insertions, 12 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index 99281c73..8113a8f0 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c | |||
@@ -169,7 +169,7 @@ static int send_offline_packet(Messenger *m, int friendcon_id) | |||
169 | } | 169 | } |
170 | 170 | ||
171 | static int handle_status(void *object, int i, uint8_t status); | 171 | static int handle_status(void *object, int i, uint8_t status); |
172 | static int handle_packet(void *object, int i, uint8_t *temp, uint16_t len, void *userdata); | 172 | static int handle_packet(void *object, int i, const uint8_t *temp, uint16_t len, void *userdata); |
173 | static int handle_custom_lossy_packet(void *object, int friend_num, const uint8_t *packet, uint16_t length); | 173 | static int handle_custom_lossy_packet(void *object, int friend_num, const uint8_t *packet, uint16_t length); |
174 | 174 | ||
175 | static int32_t init_new_friend(Messenger *m, const uint8_t *real_pk, uint8_t status) | 175 | static int32_t init_new_friend(Messenger *m, const uint8_t *real_pk, uint8_t status) |
@@ -1622,7 +1622,7 @@ static void break_files(const Messenger *m, int32_t friendnumber) | |||
1622 | /* return -1 on failure, 0 on success. | 1622 | /* return -1 on failure, 0 on success. |
1623 | */ | 1623 | */ |
1624 | static int handle_filecontrol(Messenger *m, int32_t friendnumber, uint8_t receive_send, uint8_t filenumber, | 1624 | static int handle_filecontrol(Messenger *m, int32_t friendnumber, uint8_t receive_send, uint8_t filenumber, |
1625 | uint8_t control_type, uint8_t *data, uint16_t length) | 1625 | uint8_t control_type, const uint8_t *data, uint16_t length) |
1626 | { | 1626 | { |
1627 | if (receive_send > 1) { | 1627 | if (receive_send > 1) { |
1628 | return -1; | 1628 | return -1; |
@@ -2055,7 +2055,7 @@ static int handle_status(void *object, int i, uint8_t status) | |||
2055 | return 0; | 2055 | return 0; |
2056 | } | 2056 | } |
2057 | 2057 | ||
2058 | static int handle_packet(void *object, int i, uint8_t *temp, uint16_t len, void *userdata) | 2058 | static int handle_packet(void *object, int i, const uint8_t *temp, uint16_t len, void *userdata) |
2059 | { | 2059 | { |
2060 | if (len == 0) { | 2060 | if (len == 0) { |
2061 | return -1; | 2061 | return -1; |
@@ -2063,7 +2063,7 @@ static int handle_packet(void *object, int i, uint8_t *temp, uint16_t len, void | |||
2063 | 2063 | ||
2064 | Messenger *m = object; | 2064 | Messenger *m = object; |
2065 | uint8_t packet_id = temp[0]; | 2065 | uint8_t packet_id = temp[0]; |
2066 | uint8_t *data = temp + 1; | 2066 | const uint8_t *data = temp + 1; |
2067 | uint32_t data_length = len - 1; | 2067 | uint32_t data_length = len - 1; |
2068 | 2068 | ||
2069 | if (m->friendlist[i].status != FRIEND_ONLINE) { | 2069 | if (m->friendlist[i].status != FRIEND_ONLINE) { |
@@ -2295,7 +2295,7 @@ static int handle_packet(void *object, int i, uint8_t *temp, uint16_t len, void | |||
2295 | real_filenumber += 1; | 2295 | real_filenumber += 1; |
2296 | real_filenumber <<= 16; | 2296 | real_filenumber <<= 16; |
2297 | uint16_t file_data_length = (data_length - 1); | 2297 | uint16_t file_data_length = (data_length - 1); |
2298 | uint8_t *file_data; | 2298 | const uint8_t *file_data; |
2299 | 2299 | ||
2300 | if (file_data_length == 0) { | 2300 | if (file_data_length == 0) { |
2301 | file_data = NULL; | 2301 | file_data = NULL; |
diff --git a/toxcore/friend_connection.c b/toxcore/friend_connection.c index 0779fb20..7c8471a0 100644 --- a/toxcore/friend_connection.c +++ b/toxcore/friend_connection.c | |||
@@ -392,7 +392,7 @@ static void dht_pk_callback(void *object, int32_t number, const uint8_t *dht_pub | |||
392 | onion_set_friend_DHT_pubkey(fr_c->onion_c, friend_con->onion_friendnum, dht_public_key); | 392 | onion_set_friend_DHT_pubkey(fr_c->onion_c, friend_con->onion_friendnum, dht_public_key); |
393 | } | 393 | } |
394 | 394 | ||
395 | static int handle_packet(void *object, int number, uint8_t *data, uint16_t length, void *userdata) | 395 | static int handle_packet(void *object, int number, const uint8_t *data, uint16_t length, void *userdata) |
396 | { | 396 | { |
397 | if (length == 0) { | 397 | if (length == 0) { |
398 | return -1; | 398 | return -1; |
@@ -647,7 +647,8 @@ void set_dht_temp_pk(Friend_Connections *fr_c, int friendcon_id, const uint8_t * | |||
647 | * return -1 on failure | 647 | * return -1 on failure |
648 | */ | 648 | */ |
649 | int friend_connection_callbacks(Friend_Connections *fr_c, int friendcon_id, unsigned int index, | 649 | int friend_connection_callbacks(Friend_Connections *fr_c, int friendcon_id, unsigned int index, |
650 | int (*status_callback)(void *object, int id, uint8_t status), int (*data_callback)(void *object, int id, uint8_t *data, | 650 | int (*status_callback)(void *object, int id, uint8_t status), int (*data_callback)(void *object, int id, |
651 | const uint8_t *data, | ||
651 | uint16_t length, void *userdata), int (*lossy_data_callback)(void *object, int id, const uint8_t *data, | 652 | uint16_t length, void *userdata), int (*lossy_data_callback)(void *object, int id, const uint8_t *data, |
652 | uint16_t length), void *object, | 653 | uint16_t length), void *object, |
653 | int number) | 654 | int number) |
diff --git a/toxcore/friend_connection.h b/toxcore/friend_connection.h index cbc6b9a1..a939b17c 100644 --- a/toxcore/friend_connection.h +++ b/toxcore/friend_connection.h | |||
@@ -83,7 +83,7 @@ typedef struct { | |||
83 | void *status_callback_object; | 83 | void *status_callback_object; |
84 | int status_callback_id; | 84 | int status_callback_id; |
85 | 85 | ||
86 | int (*data_callback)(void *object, int id, uint8_t *data, uint16_t length, void *userdata); | 86 | int (*data_callback)(void *object, int id, const uint8_t *data, uint16_t length, void *userdata); |
87 | void *data_callback_object; | 87 | void *data_callback_object; |
88 | int data_callback_id; | 88 | int data_callback_id; |
89 | 89 | ||
@@ -158,7 +158,8 @@ int friend_add_tcp_relay(Friend_Connections *fr_c, int friendcon_id, IP_Port ip_ | |||
158 | * return -1 on failure | 158 | * return -1 on failure |
159 | */ | 159 | */ |
160 | int friend_connection_callbacks(Friend_Connections *fr_c, int friendcon_id, unsigned int index, | 160 | int friend_connection_callbacks(Friend_Connections *fr_c, int friendcon_id, unsigned int index, |
161 | int (*status_callback)(void *object, int id, uint8_t status), int (*data_callback)(void *object, int id, uint8_t *data, | 161 | int (*status_callback)(void *object, int id, uint8_t status), int (*data_callback)(void *object, int id, |
162 | const uint8_t *data, | ||
162 | uint16_t length, void *userdata), int (*lossy_data_callback)(void *object, int id, const uint8_t *data, | 163 | uint16_t length, void *userdata), int (*lossy_data_callback)(void *object, int id, const uint8_t *data, |
163 | uint16_t length), void *object, | 164 | uint16_t length), void *object, |
164 | int number); | 165 | int number); |
diff --git a/toxcore/net_crypto.c b/toxcore/net_crypto.c index e2d7e494..940feb04 100644 --- a/toxcore/net_crypto.c +++ b/toxcore/net_crypto.c | |||
@@ -2142,7 +2142,7 @@ int connection_status_handler(const Net_Crypto *c, int crypt_connection_id, | |||
2142 | * return 0 on success. | 2142 | * return 0 on success. |
2143 | */ | 2143 | */ |
2144 | int connection_data_handler(const Net_Crypto *c, int crypt_connection_id, int (*connection_data_callback)(void *object, | 2144 | int connection_data_handler(const Net_Crypto *c, int crypt_connection_id, int (*connection_data_callback)(void *object, |
2145 | int id, uint8_t *data, uint16_t length, void *userdata), void *object, int id) | 2145 | int id, const uint8_t *data, uint16_t length, void *userdata), void *object, int id) |
2146 | { | 2146 | { |
2147 | Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); | 2147 | Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); |
2148 | 2148 | ||
diff --git a/toxcore/net_crypto.h b/toxcore/net_crypto.h index 6a3ba40f..52c6265e 100644 --- a/toxcore/net_crypto.h +++ b/toxcore/net_crypto.h | |||
@@ -135,7 +135,7 @@ typedef struct { | |||
135 | void *connection_status_callback_object; | 135 | void *connection_status_callback_object; |
136 | int connection_status_callback_id; | 136 | int connection_status_callback_id; |
137 | 137 | ||
138 | int (*connection_data_callback)(void *object, int id, uint8_t *data, uint16_t length, void *userdata); | 138 | int (*connection_data_callback)(void *object, int id, const uint8_t *data, uint16_t length, void *userdata); |
139 | void *connection_data_callback_object; | 139 | void *connection_data_callback_object; |
140 | int connection_data_callback_id; | 140 | int connection_data_callback_id; |
141 | 141 | ||
@@ -275,7 +275,7 @@ int connection_status_handler(const Net_Crypto *c, int crypt_connection_id, | |||
275 | * return 0 on success. | 275 | * return 0 on success. |
276 | */ | 276 | */ |
277 | int connection_data_handler(const Net_Crypto *c, int crypt_connection_id, int (*connection_data_callback)(void *object, | 277 | int connection_data_handler(const Net_Crypto *c, int crypt_connection_id, int (*connection_data_callback)(void *object, |
278 | int id, uint8_t *data, uint16_t length, void *userdata), void *object, int id); | 278 | int id, const uint8_t *data, uint16_t length, void *userdata), void *object, int id); |
279 | 279 | ||
280 | 280 | ||
281 | /* Set function to be called when connection with crypt_connection_id receives a lossy data packet of length. | 281 | /* Set function to be called when connection with crypt_connection_id receives a lossy data packet of length. |