From: Rafael Sadowski Subject: fix grpc-1.74.0: Check failed: static_cast(size) <= sizeof(address) To: ports@openbsd.org Date: Fri, 1 Aug 2025 12:23:42 +0200 I saw the following assert: bear --append --output ~/wip-src/compile_commands.json --force-wrapper -- make WARNING: All log messages before absl::InitializeLog() is called are written to STDERR F0000 00:00:1754041060.840315 558285 resolved_address.cc:32] Check failed: static_cast(size) <= sizeof(address) Here is a simple fix that uses sa_len if present. OK? Index: Makefile =================================================================== RCS file: /cvs/ports/net/grpc/Makefile,v diff -u -p -u -p -r1.8 Makefile --- Makefile 27 Jul 2025 07:16:17 -0000 1.8 +++ Makefile 1 Aug 2025 10:20:26 -0000 @@ -5,6 +5,7 @@ COMMENT = HTTP/2-based RPC framework V = 1.74.0 DISTNAME = grpc-${V} +REVISION = 0 DIST_TUPLE += github grpc grpc v${V} . Index: patches/patch-src_core_lib_event_engine_resolved_address_cc =================================================================== RCS file: patches/patch-src_core_lib_event_engine_resolved_address_cc diff -N patches/patch-src_core_lib_event_engine_resolved_address_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_core_lib_event_engine_resolved_address_cc 1 Aug 2025 10:20:26 -0000 @@ -0,0 +1,18 @@ +Index: src/core/lib/event_engine/resolved_address.cc +--- src/core/lib/event_engine/resolved_address.cc.orig ++++ src/core/lib/event_engine/resolved_address.cc +@@ -29,8 +29,14 @@ EventEngine::ResolvedAddress::ResolvedAddress(const so + socklen_t size) + : size_(size) { + DCHECK_GE(size, 0u); ++#ifdef __OpenBSD__ ++ socklen_t actual_size = address->sa_len > 0 ? address->sa_len : size; ++ CHECK(static_cast(actual_size) <= sizeof(address_)); ++ memcpy(&address_, address, actual_size); ++#else + CHECK(static_cast(size) <= sizeof(address_)); + memcpy(&address_, address, size); ++#endif + } + + const struct sockaddr* EventEngine::ResolvedAddress::address() const {