diff options
author | Mateusz Poliwczak <mpoliwczak34@gmail.com> | 2022-12-20 15:24:06 +0000 |
---|---|---|
committer | Gopher Robot <gobot@golang.org> | 2022-12-21 03:49:27 +0000 |
commit | 78fc81070a853d08a71f70fa20b2093f5535e6c5 (patch) | |
tree | f21117aca1cb8aa7d6ef18e440e8f33669c10c0c | |
parent | a5a47442502e8e42b390f458f8f91dea3de872eb (diff) | |
download | go-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.go | 5 |
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() |