Skip to content

Commit 0f3b0c8

Browse files
committed
don't note active on freeze packet
1 parent 9a282e6 commit 0f3b0c8

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

toxcore/group.c

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2549,9 +2549,24 @@ static void handle_message_packet_group(Group_Chats *g_c, uint32_t groupnumber,
25492549
memcpy(&peer_number, data, sizeof(uint16_t));
25502550
peer_number = net_ntohs(peer_number);
25512551

2552-
const int index = note_peer_active(g_c, groupnumber, peer_number, userdata);
2552+
uint32_t message_number;
2553+
memcpy(&message_number, data + sizeof(uint16_t), sizeof(message_number));
2554+
message_number = net_ntohl(message_number);
2555+
2556+
const uint8_t message_id = data[sizeof(uint16_t) + sizeof(message_number)];
2557+
const uint8_t *msg_data = data + sizeof(uint16_t) + sizeof(message_number) + 1;
2558+
const uint16_t msg_data_len = length - (sizeof(uint16_t) + sizeof(message_number) + 1);
2559+
2560+
const bool ignore_frozen = message_id == GROUP_MESSAGE_FREEZE_PEER_ID;
2561+
2562+
const int index = ignore_frozen ? get_peer_index(g, peer_number)
2563+
: note_peer_active(g_c, groupnumber, peer_number, userdata);
25532564

25542565
if (index == -1) {
2566+
if (ignore_frozen) {
2567+
return;
2568+
}
2569+
25552570
/* If we don't know the peer this packet came from, then we query the
25562571
* list of peers from the relaying peer.
25572572
* (They would not have relayed it if they didn't know the peer.) */
@@ -2578,14 +2593,6 @@ static void handle_message_packet_group(Group_Chats *g_c, uint32_t groupnumber,
25782593
}
25792594
}
25802595

2581-
uint32_t message_number;
2582-
memcpy(&message_number, data + sizeof(uint16_t), sizeof(message_number));
2583-
message_number = net_ntohl(message_number);
2584-
2585-
const uint8_t message_id = data[sizeof(uint16_t) + sizeof(message_number)];
2586-
const uint8_t *msg_data = data + sizeof(uint16_t) + sizeof(message_number) + 1;
2587-
const uint16_t msg_data_len = length - (sizeof(uint16_t) + sizeof(message_number) + 1);
2588-
25892596
if (!check_message_info(message_number, message_id, &g->group[index])) {
25902597
return;
25912598
}

0 commit comments

Comments
 (0)