From: Ian Lance Taylor Date: Thu, 11 Apr 2024 21:36:25 +0000 (-0700) Subject: [release-branch.go1.22] net: check SkipAdditional error result X-Git-Tag: go1.22.3~4 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=93d8777d244962d1b706c0b695c8b72e9702577e;p=gostls13.git [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 LUCI-TryBot-Result: Go LUCI Commit-Queue: Ian Lance Taylor Auto-Submit: Ian Lance Taylor Reviewed-by: Ian Lance Taylor (cherry picked from commit ddfab21e464b9b4c15fe3dc97eb5d93a4932f434) Reviewed-on: https://go-review.googlesource.com/c/go/+/581816 Reviewed-by: David Chase --- 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 + } } }