]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.22] net: check SkipAdditional error result
authorIan Lance Taylor <iant@golang.org>
Thu, 11 Apr 2024 21:36:25 +0000 (14:36 -0700)
committerDavid Chase <drchase@google.com>
Wed, 1 May 2024 15:43:29 +0000 (15:43 +0000)
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>
src/net/dnsclient_unix.go

index c291d5eb4f20e01e7f92ebad90b54b12338c737d..8b3dd5371aa306dd667fd087547140cf4dc55a8b 100644 (file)
@@ -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
+               }
        }
 }