From edfeea01be331b8737697d4d74737d7888d7dd6f Mon Sep 17 00:00:00 2001 From: muyizixiu Date: Wed, 17 Aug 2022 01:51:01 +0000 Subject: net/http: return ErrNoCookie from Request.Cookie when name is "" Request.Cookie(name string) will return the first cookie when cookie name is "". Since readCookies in file net/http/cookie.go at line 247 return all cookies when second parameter is a empty string. To fix it, Return ErrNoCookie from Request.Cookie(""), instead of the first cookie in the request. Fixes #53181 Change-Id: Ie623ca4c53da64ef7623a7863292a2d771f76832 GitHub-Last-Rev: 01098cd5dbcc8d65e9c0893e0586601584e5f8b9 GitHub-Pull-Request: golang/go#53183 Reviewed-on: https://go-review.googlesource.com/c/go/+/409754 Reviewed-by: Ian Lance Taylor Reviewed-by: Damien Neil --- src/net/http/request.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/net/http/request.go') diff --git a/src/net/http/request.go b/src/net/http/request.go index 5439cb3646..a03a54b943 100644 --- a/src/net/http/request.go +++ b/src/net/http/request.go @@ -416,6 +416,9 @@ var ErrNoCookie = errors.New("http: named cookie not present") // If multiple cookies match the given name, only one cookie will // be returned. func (r *Request) Cookie(name string) (*Cookie, error) { + if name == "" { + return nil, ErrNoCookie + } for _, c := range readCookies(r.Header, name) { return c, nil } -- cgit v1.3-5-g9baa