summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Poliwczak <mpoliwczak34@gmail.com>2022-12-20 15:24:06 +0000
committerGopher Robot <gobot@golang.org>2022-12-21 03:49:27 +0000
commit78fc81070a853d08a71f70fa20b2093f5535e6c5 (patch)
treef21117aca1cb8aa7d6ef18e440e8f33669c10c0c
parenta5a47442502e8e42b390f458f8f91dea3de872eb (diff)
downloadgo-git-78fc81070a853d08a71f70fa20b2093f5535e6c5.tar.gz
net: use correct dns msg size
Set bufSize to the actual dns message size, so that the p.Start (below) gets a fully valid dns message. Change-Id: I585e8a3d71f88db93e09bd0dbbc0875ee6de9a97 GitHub-Last-Rev: 0967be35012d2e28366e6d47eee4968c7e8d5e4a GitHub-Pull-Request: golang/go#57392 Reviewed-on: https://go-review.googlesource.com/c/go/+/458375 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com>
-rw-r--r--src/net/cgo_unix.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/net/cgo_unix.go b/src/net/cgo_unix.go
index 5b0df56eae..6a2c369c66 100644
--- a/src/net/cgo_unix.go
+++ b/src/net/cgo_unix.go
@@ -383,8 +383,9 @@ func cgoResSearch(hostname string, rtype, class int) ([]dnsmessage.Resource, err
s := _C_CString(hostname)
defer _C_FreeCString(s)
+ var size int
for {
- size, _ := _C_res_nsearch(state, s, class, rtype, buf, bufSize)
+ size, _ = _C_res_nsearch(state, s, class, rtype, buf, bufSize)
if size <= 0 || size > 0xffff {
return nil, errors.New("res_nsearch failure")
}
@@ -399,7 +400,7 @@ func cgoResSearch(hostname string, rtype, class int) ([]dnsmessage.Resource, err
}
var p dnsmessage.Parser
- if _, err := p.Start(unsafe.Slice((*byte)(unsafe.Pointer(buf)), bufSize)); err != nil {
+ if _, err := p.Start(unsafe.Slice((*byte)(unsafe.Pointer(buf)), size)); err != nil {
return nil, err
}
p.SkipAllQuestions()