internal/http3: handle a nil TLSConfig in newQUICConfig
newQUICConfig read tlsConfig.NextProtos before checking tlsConfig for nil, so
a nil tls.Config panicked. The nil check that followed, after tlsConfig.Clone(),
was unreachable.
This is reachable from initEndpoint, which passes http.Transport.TLSClientConfig
straight through, and that field is nil for a default Transport:
panic: runtime error: invalid memory address or nil pointer dereference
golang.org/x/net/internal/http3.newQUICConfig(...)
golang.org/x/net/internal/http3.(*transport).initEndpoint(...)
Change-Id: I8b8dcb56a2ffc148a03894335f9d74196a6a6964
Reviewed-on: https://go-review.googlesource.com/c/net/+/823105
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Nicholas Husin <nsh@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Nicholas Husin <husin@google.com>
This repository holds supplementary Go networking packages.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://go.dev/doc/contribute.
The git repository is https://go.googlesource.com/net.
The main issue tracker for the net repository is located at https://go.dev/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.