Download raw body.
fix grpc-1.74.0: Check failed: static_cast<sizet>(size) <= sizeof(address)
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<sizet>(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<size_t>(actual_size) <= sizeof(address_));
++ memcpy(&address_, address, actual_size);
++#else
+ CHECK(static_cast<size_t>(size) <= sizeof(address_));
+ memcpy(&address_, address, size);
++#endif
+ }
+
+ const struct sockaddr* EventEngine::ResolvedAddress::address() const {
fix grpc-1.74.0: Check failed: static_cast<sizet>(size) <= sizeof(address)