From eea26e8e685af0270b10c41c7d8f8de22a520373 Mon Sep 17 00:00:00 2001 From: fangguizhen <1297394526@qq.com> Date: Tue, 3 Jan 2023 18:18:35 +0000 Subject: [PATCH] net/http: check for nil, nil return from DialContext as well as Dial Change-Id: I3b6dd9c40b3c10db2eda6a25b9d556c9c3733bbc GitHub-Last-Rev: fd9b0c4193511a75b4a0073f37aa3116db23a46f GitHub-Pull-Request: golang/go#57448 Reviewed-on: https://go-review.googlesource.com/c/go/+/458876 Reviewed-by: Javad Rajabzadeh Reviewed-by: Damien Neil Reviewed-by: Cherry Mui Run-TryBot: Dmitri Shuralyov TryBot-Result: Gopher Robot Auto-Submit: Dmitri Shuralyov --- src/net/http/transport.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/net/http/transport.go b/src/net/http/transport.go index 3ed5068eef..c07352b018 100644 --- a/src/net/http/transport.go +++ b/src/net/http/transport.go @@ -1180,7 +1180,11 @@ var zeroDialer net.Dialer func (t *Transport) dial(ctx context.Context, network, addr string) (net.Conn, error) { if t.DialContext != nil { - return t.DialContext(ctx, network, addr) + c, err := t.DialContext(ctx, network, addr) + if c == nil && err == nil { + err = errors.New("net/http: Transport.DialContext hook returned (nil, nil)") + } + return c, err } if t.Dial != nil { c, err := t.Dial(network, addr) -- 2.50.0