diff options
author | Ian Lance Taylor <iant@golang.org> | 2024-04-11 14:36:25 -0700 |
---|---|---|
committer | David Chase <drchase@google.com> | 2024-05-01 15:43:29 +0000 |
commit | 93d8777d244962d1b706c0b695c8b72e9702577e (patch) | |
tree | 2fe30847e1b7e44673a12a9315e369125770aa9f | |
parent | 3f4af1ff0e0c3a83bc48faee3d1f0282ef4d02f2 (diff) | |
download | go-93d8777d244962d1b706c0b695c8b72e9702577e.tar.gz go-93d8777d244962d1b706c0b695c8b72e9702577e.zip |
[release-branch.go1.22] net: check SkipAdditional error result
This will avoid a potential endless loop for a corrupt DNS packet.
For #66754
Fixes #67040
Change-Id: I46591b3f7695bcc88d2312833e45955f8c129d2b
Reviewed-on: https://go-review.googlesource.com/c/go/+/578375
Reviewed-by: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Commit-Queue: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
(cherry picked from commit ddfab21e464b9b4c15fe3dc97eb5d93a4932f434)
Reviewed-on: https://go-review.googlesource.com/c/go/+/581816
Reviewed-by: David Chase <drchase@google.com>
-rw-r--r-- | src/net/dnsclient_unix.go | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/net/dnsclient_unix.go b/src/net/dnsclient_unix.go index c291d5eb4f..8b3dd5371a 100644 --- a/src/net/dnsclient_unix.go +++ b/src/net/dnsclient_unix.go @@ -267,7 +267,9 @@ func extractExtendedRCode(p dnsmessage.Parser, hdr dnsmessage.Header) dnsmessage if ahdr.Type == dnsmessage.TypeOPT { return ahdr.ExtendedRCode(hdr.RCode) } - p.SkipAdditional() + if err := p.SkipAdditional(); err != nil { + return hdr.RCode + } } } |