From acda1d4a37eb34a417e5d8efde784881a9b1f664 Mon Sep 17 00:00:00 2001 From: jeffro256 Date: Wed, 5 Nov 2025 15:30:48 -0600 Subject: [PATCH] p2p: unpack memory layout of peerlist entries The `#pragma pack(push, 1)` directive was causing unaligned memory accesses to shared pointers in `epee::net_utils::network_address`. The peerlist file uses Boost serialization, so this should be backwards compatible. --- src/p2p/p2p_protocol_defs.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/p2p/p2p_protocol_defs.h b/src/p2p/p2p_protocol_defs.h index 5f0fb1bde..43cc6b03e 100644 --- a/src/p2p/p2p_protocol_defs.h +++ b/src/p2p/p2p_protocol_defs.h @@ -54,8 +54,6 @@ namespace nodetool s << std::hex << peer_id; return epee::string_tools::pad_string(s.str(), 16, '0', true); } - -#pragma pack (push, 1) template struct peerlist_entry_base @@ -108,8 +106,6 @@ namespace nodetool }; typedef anchor_peerlist_entry_base anchor_peerlist_entry; -#pragma pack(pop) - inline std::string print_peerlist_to_string(const std::vector& pl) {