From 1996c22f0a58a32f5f415e1a6c84bcb305f04c36 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sat, 10 Jan 2026 15:56:01 +0100 Subject: [PATCH] syscall: return early on error in Recvmsg Currently, Recvmsg may access the rsa buffer even if the underlying syscall returns an error. Following the same change done for x/sys/unix.Recvmsg in CL 734740. For golang/go#76848 Change-Id: I2a145d822442a2033a76f4717317a39010b17bd5 Reviewed-on: https://go-review.googlesource.com/c/go/+/735121 Reviewed-by: Michael Pratt LUCI-TryBot-Result: Go LUCI Reviewed-by: Ian Lance Taylor Auto-Submit: Tobias Klauser Reviewed-by: Florian Lehner Reviewed-by: Carlos Amedee --- src/syscall/syscall_unix.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/syscall/syscall_unix.go b/src/syscall/syscall_unix.go index d957b77dc4..60173f6d16 100644 --- a/src/syscall/syscall_unix.go +++ b/src/syscall/syscall_unix.go @@ -385,6 +385,9 @@ func recvmsgInet6(fd int, p, oob []byte, flags int, from *SockaddrInet6) (n, oob func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { var rsa RawSockaddrAny n, oobn, recvflags, err = recvmsgRaw(fd, p, oob, flags, &rsa) + if err != nil { + return + } // source address is only specified if the socket is unconnected if rsa.Addr.Family != AF_UNSPEC { from, err = anyToSockaddr(&rsa) -- 2.52.0