From aa83aee7de1d69b207ab9669bb2b7dcdcbdf9383 Mon Sep 17 00:00:00 2001 From: Cole Garien Date: Sat, 13 Sep 2025 17:54:40 +0000 Subject: [PATCH] net/http: clarify panic conditions in Handle, HandleFunc, AddInsecureBypassPattern Add explicit mention that these methods panic on both pattern conflict and invalid syntax. Fixes #75226 Change-Id: If7dbfc44e1ec4624ab156f0e5d7e66cee2c2fef3 GitHub-Last-Rev: acc9a9c3338373f5a9376ff2eb1decd30bbee04d GitHub-Pull-Request: golang/go#75297 Reviewed-on: https://go-review.googlesource.com/c/go/+/701016 Reviewed-by: Michael Knyszek Auto-Submit: Sean Liao LUCI-TryBot-Result: Go LUCI Reviewed-by: Emmanuel Odeke Reviewed-by: Sean Liao Reviewed-by: Mark Freeman --- src/net/http/csrf.go | 4 ++++ src/net/http/server.go | 12 ++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/net/http/csrf.go b/src/net/http/csrf.go index d088b9b6151..0b71b403899 100644 --- a/src/net/http/csrf.go +++ b/src/net/http/csrf.go @@ -90,6 +90,10 @@ var sentinelHandler Handler = &noopHandler{} // would redirect to a pattern (e.g. after cleaning the path or adding a // trailing slash) are not. // +// AddInsecureBypassPattern panics if the pattern conflicts with one already +// registered, or if the pattern is syntactically invalid (for example, an +// improperly formed wildcard). +// // AddInsecureBypassPattern can be called concurrently with other methods or // request handling, and applies to future requests. func (c *CrossOriginProtection) AddInsecureBypassPattern(pattern string) { diff --git a/src/net/http/server.go b/src/net/http/server.go index 6fdcd51c0a6..4078c899061 100644 --- a/src/net/http/server.go +++ b/src/net/http/server.go @@ -2868,8 +2868,10 @@ func (mux *ServeMux) ServeHTTP(w ResponseWriter, r *Request) { // always refers to user code. // Handle registers the handler for the given pattern. -// If the given pattern conflicts with one that is already registered, Handle -// panics. +// If the given pattern conflicts with one that is already registered +// or if the pattern is invalid, Handle panics. +// +// See [ServeMux] for details on valid patterns and conflict rules. func (mux *ServeMux) Handle(pattern string, handler Handler) { if use121 { mux.mux121.handle(pattern, handler) @@ -2879,8 +2881,10 @@ func (mux *ServeMux) Handle(pattern string, handler Handler) { } // HandleFunc registers the handler function for the given pattern. -// If the given pattern conflicts with one that is already registered, HandleFunc -// panics. +// If the given pattern conflicts with one that is already registered +// or if the pattern is invalid, HandleFunc panics. +// +// See [ServeMux] for details on valid patterns and conflict rules. func (mux *ServeMux) HandleFunc(pattern string, handler func(ResponseWriter, *Request)) { if use121 { mux.mux121.handleFunc(pattern, handler)