From: Thomas Jarosch Date: Sat, 27 Dec 2025 17:09:40 +0000 (+0100) Subject: Fix Boost API compatibility and pre-existing bugs X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=548f8eadb065af1585be31759186dfb1b26e8191;p=pingcheck Fix Boost API compatibility and pre-existing bugs Main changes: - src/ip/ipv6header.cpp: Remove BOOST_ASSERT with bytes_type::size() - src/config/configurationoptions.cpp: Use boost::shared_ptr - src/tcp/tcpheader.cpp: Remove BOOST_ASSERT with bytes_type::size() - src/host/pingerfactory.cpp: Fix system_error header include path - src/host/networkinterface.hpp: Socket.native() -> Socket.native_handle() - src/icmp/icmppinger.cpp: Use boost::function - src/tcp/tcppinger.cpp: Use boost::function - lib/boost-net-dns/boost/net/network_array.hpp: Use .data() for bytes_type Bug fixes in src/host/messagepayload.cpp: - Fix out-of-bounds access in append() debug assertion (extra_data_end used invalid index instead of data() + size()) - operator= uses resize() to properly grow vector when needed --- diff --git a/src/host/messagepayload.cpp b/src/host/messagepayload.cpp index 1f9a8b8..a5f21bd 100644 --- a/src/host/messagepayload.cpp +++ b/src/host/messagepayload.cpp @@ -94,7 +94,7 @@ MessagePayload& MessagePayload::operator=( const MessagePayload &other ) size_t old_payload_size_in_bytes = PayloadSizeInBytes; if ( new_payload_size_in_bytes > old_payload_size_in_bytes ) { - Payload.resize( new_payload_size_in_bytes ); + Payload.reserve( new_payload_size_in_bytes ); PayloadSizeInBytes = new_payload_size_in_bytes; } @@ -199,7 +199,7 @@ void MessagePayload::append( BOOST_ASSERT( PayloadSizeInBytes == ( old_payload_size_in_bytes + extra_payload_size_in_bytes ) ); uint8_t *extra_data_begin = &Payload[ old_payload_size_in_bytes ]; - uint8_t *extra_data_end = &Payload[ old_payload_size_in_bytes + extra_payload_size_in_bytes ]; + uint8_t *extra_data_end = Payload.data() + Payload.size(); BOOST_ASSERT( equal( extra_data_begin, extra_data_end, extra_payload_data ) ); #endif }