mirror of
https://github.com/irungentoo/toxcore.git
synced 2024-03-22 13:30:51 +08:00
Make packet data a ptr-to-const.
Ensure that nobody inadvertly modifies the temporary packet data buffer.
This commit is contained in:
parent
aa0e3974c5
commit
8121ace449
|
@ -169,7 +169,7 @@ static int send_offline_packet(Messenger *m, int friendcon_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int handle_status(void *object, int i, uint8_t status);
|
static int handle_status(void *object, int i, uint8_t status);
|
||||||
static int handle_packet(void *object, int i, uint8_t *temp, uint16_t len, void *userdata);
|
static int handle_packet(void *object, int i, const uint8_t *temp, uint16_t len, void *userdata);
|
||||||
static int handle_custom_lossy_packet(void *object, int friend_num, const uint8_t *packet, uint16_t length);
|
static int handle_custom_lossy_packet(void *object, int friend_num, const uint8_t *packet, uint16_t length);
|
||||||
|
|
||||||
static int32_t init_new_friend(Messenger *m, const uint8_t *real_pk, uint8_t status)
|
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)
|
||||||
/* return -1 on failure, 0 on success.
|
/* return -1 on failure, 0 on success.
|
||||||
*/
|
*/
|
||||||
static int handle_filecontrol(Messenger *m, int32_t friendnumber, uint8_t receive_send, uint8_t filenumber,
|
static int handle_filecontrol(Messenger *m, int32_t friendnumber, uint8_t receive_send, uint8_t filenumber,
|
||||||
uint8_t control_type, uint8_t *data, uint16_t length)
|
uint8_t control_type, const uint8_t *data, uint16_t length)
|
||||||
{
|
{
|
||||||
if (receive_send > 1) {
|
if (receive_send > 1) {
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -2055,7 +2055,7 @@ static int handle_status(void *object, int i, uint8_t status)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int handle_packet(void *object, int i, uint8_t *temp, uint16_t len, void *userdata)
|
static int handle_packet(void *object, int i, const uint8_t *temp, uint16_t len, void *userdata)
|
||||||
{
|
{
|
||||||
if (len == 0) {
|
if (len == 0) {
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -2063,7 +2063,7 @@ static int handle_packet(void *object, int i, uint8_t *temp, uint16_t len, void
|
||||||
|
|
||||||
Messenger *m = object;
|
Messenger *m = object;
|
||||||
uint8_t packet_id = temp[0];
|
uint8_t packet_id = temp[0];
|
||||||
uint8_t *data = temp + 1;
|
const uint8_t *data = temp + 1;
|
||||||
uint32_t data_length = len - 1;
|
uint32_t data_length = len - 1;
|
||||||
|
|
||||||
if (m->friendlist[i].status != FRIEND_ONLINE) {
|
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
|
||||||
real_filenumber += 1;
|
real_filenumber += 1;
|
||||||
real_filenumber <<= 16;
|
real_filenumber <<= 16;
|
||||||
uint16_t file_data_length = (data_length - 1);
|
uint16_t file_data_length = (data_length - 1);
|
||||||
uint8_t *file_data;
|
const uint8_t *file_data;
|
||||||
|
|
||||||
if (file_data_length == 0) {
|
if (file_data_length == 0) {
|
||||||
file_data = NULL;
|
file_data = NULL;
|
||||||
|
|
|
@ -392,7 +392,7 @@ static void dht_pk_callback(void *object, int32_t number, const uint8_t *dht_pub
|
||||||
onion_set_friend_DHT_pubkey(fr_c->onion_c, friend_con->onion_friendnum, dht_public_key);
|
onion_set_friend_DHT_pubkey(fr_c->onion_c, friend_con->onion_friendnum, dht_public_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int handle_packet(void *object, int number, uint8_t *data, uint16_t length, void *userdata)
|
static int handle_packet(void *object, int number, const uint8_t *data, uint16_t length, void *userdata)
|
||||||
{
|
{
|
||||||
if (length == 0) {
|
if (length == 0) {
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -647,7 +647,8 @@ void set_dht_temp_pk(Friend_Connections *fr_c, int friendcon_id, const uint8_t *
|
||||||
* return -1 on failure
|
* return -1 on failure
|
||||||
*/
|
*/
|
||||||
int friend_connection_callbacks(Friend_Connections *fr_c, int friendcon_id, unsigned int index,
|
int friend_connection_callbacks(Friend_Connections *fr_c, int friendcon_id, unsigned int index,
|
||||||
int (*status_callback)(void *object, int id, uint8_t status), int (*data_callback)(void *object, int id, uint8_t *data,
|
int (*status_callback)(void *object, int id, uint8_t status), int (*data_callback)(void *object, int id,
|
||||||
|
const uint8_t *data,
|
||||||
uint16_t length, void *userdata), int (*lossy_data_callback)(void *object, int id, const uint8_t *data,
|
uint16_t length, void *userdata), int (*lossy_data_callback)(void *object, int id, const uint8_t *data,
|
||||||
uint16_t length), void *object,
|
uint16_t length), void *object,
|
||||||
int number)
|
int number)
|
||||||
|
|
|
@ -83,7 +83,7 @@ typedef struct {
|
||||||
void *status_callback_object;
|
void *status_callback_object;
|
||||||
int status_callback_id;
|
int status_callback_id;
|
||||||
|
|
||||||
int (*data_callback)(void *object, int id, uint8_t *data, uint16_t length, void *userdata);
|
int (*data_callback)(void *object, int id, const uint8_t *data, uint16_t length, void *userdata);
|
||||||
void *data_callback_object;
|
void *data_callback_object;
|
||||||
int data_callback_id;
|
int data_callback_id;
|
||||||
|
|
||||||
|
@ -158,7 +158,8 @@ int friend_add_tcp_relay(Friend_Connections *fr_c, int friendcon_id, IP_Port ip_
|
||||||
* return -1 on failure
|
* return -1 on failure
|
||||||
*/
|
*/
|
||||||
int friend_connection_callbacks(Friend_Connections *fr_c, int friendcon_id, unsigned int index,
|
int friend_connection_callbacks(Friend_Connections *fr_c, int friendcon_id, unsigned int index,
|
||||||
int (*status_callback)(void *object, int id, uint8_t status), int (*data_callback)(void *object, int id, uint8_t *data,
|
int (*status_callback)(void *object, int id, uint8_t status), int (*data_callback)(void *object, int id,
|
||||||
|
const uint8_t *data,
|
||||||
uint16_t length, void *userdata), int (*lossy_data_callback)(void *object, int id, const uint8_t *data,
|
uint16_t length, void *userdata), int (*lossy_data_callback)(void *object, int id, const uint8_t *data,
|
||||||
uint16_t length), void *object,
|
uint16_t length), void *object,
|
||||||
int number);
|
int number);
|
||||||
|
|
|
@ -2142,7 +2142,7 @@ int connection_status_handler(const Net_Crypto *c, int crypt_connection_id,
|
||||||
* return 0 on success.
|
* return 0 on success.
|
||||||
*/
|
*/
|
||||||
int connection_data_handler(const Net_Crypto *c, int crypt_connection_id, int (*connection_data_callback)(void *object,
|
int connection_data_handler(const Net_Crypto *c, int crypt_connection_id, int (*connection_data_callback)(void *object,
|
||||||
int id, uint8_t *data, uint16_t length, void *userdata), void *object, int id)
|
int id, const uint8_t *data, uint16_t length, void *userdata), void *object, int id)
|
||||||
{
|
{
|
||||||
Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id);
|
Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id);
|
||||||
|
|
||||||
|
|
|
@ -135,7 +135,7 @@ typedef struct {
|
||||||
void *connection_status_callback_object;
|
void *connection_status_callback_object;
|
||||||
int connection_status_callback_id;
|
int connection_status_callback_id;
|
||||||
|
|
||||||
int (*connection_data_callback)(void *object, int id, uint8_t *data, uint16_t length, void *userdata);
|
int (*connection_data_callback)(void *object, int id, const uint8_t *data, uint16_t length, void *userdata);
|
||||||
void *connection_data_callback_object;
|
void *connection_data_callback_object;
|
||||||
int connection_data_callback_id;
|
int connection_data_callback_id;
|
||||||
|
|
||||||
|
@ -275,7 +275,7 @@ int connection_status_handler(const Net_Crypto *c, int crypt_connection_id,
|
||||||
* return 0 on success.
|
* return 0 on success.
|
||||||
*/
|
*/
|
||||||
int connection_data_handler(const Net_Crypto *c, int crypt_connection_id, int (*connection_data_callback)(void *object,
|
int connection_data_handler(const Net_Crypto *c, int crypt_connection_id, int (*connection_data_callback)(void *object,
|
||||||
int id, uint8_t *data, uint16_t length, void *userdata), void *object, int id);
|
int id, const uint8_t *data, uint16_t length, void *userdata), void *object, int id);
|
||||||
|
|
||||||
|
|
||||||
/* Set function to be called when connection with crypt_connection_id receives a lossy data packet of length.
|
/* Set function to be called when connection with crypt_connection_id receives a lossy data packet of length.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user