unix: return early on error in Recvmsg

Currently, Recvmsg may access the rsa buffer even if the underlying syscall
returns an error.

This change aligns Recvmsg with the safer logic already
used in RecvmsgBuffers, ensuring the address is only processed when
the syscall succeeds (err == nil).

Fixes golang/go#76848

Change-Id: If76477d0362b802e54ee6d27d0e8f57024a8a1dc
Reviewed-on: https://go-review.googlesource.com/c/sys/+/734740
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Florian Lehner <lehner.florian86@gmail.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
1 file changed
tree: 88d143b950005cf5ae51c35aa9460a3fd6bfefc4
  1. cpu/
  2. execabs/
  3. plan9/
  4. unix/
  5. windows/
  6. .gitattributes
  7. .gitignore
  8. codereview.cfg
  9. CONTRIBUTING.md
  10. go.mod
  11. LICENSE
  12. PATENTS
  13. README.md
README.md

sys

Go Reference

This repository holds supplemental Go packages for low-level interactions with the operating system.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://go.dev/doc/contribute.

The git repository is https://go.googlesource.com/sys.

The main issue tracker for the sys repository is located at https://go.dev/issues. Prefix your issue with “x/sys:” in the subject line, so it is easy to find.