@@ -2549,9 +2549,24 @@ static void handle_message_packet_group(Group_Chats *g_c, uint32_t groupnumber,
2549
2549
memcpy (& peer_number , data , sizeof (uint16_t ));
2550
2550
peer_number = net_ntohs (peer_number );
2551
2551
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 );
2553
2564
2554
2565
if (index == -1 ) {
2566
+ if (ignore_frozen ) {
2567
+ return ;
2568
+ }
2569
+
2555
2570
/* If we don't know the peer this packet came from, then we query the
2556
2571
* list of peers from the relaying peer.
2557
2572
* (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,
2578
2593
}
2579
2594
}
2580
2595
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
-
2589
2596
if (!check_message_info (message_number , message_id , & g -> group [index ])) {
2590
2597
return ;
2591
2598
}
0 commit comments