]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: clarify that AddCookie only sanitizes the Cookie being added
authorVolker Dobler <dr.volker.dobler@gmail.com>
Tue, 26 May 2020 14:55:28 +0000 (16:55 +0200)
committerEmmanuel Odeke <emm.odeke@gmail.com>
Fri, 29 May 2020 09:21:54 +0000 (09:21 +0000)
AddCookie properly encodes a cookie and appends it to the Cookie header
field but does not modify or sanitize what the Cookie header field
contains already. If a user manualy sets the Cookie header field to
something not conforming to RFC 6265 then a cookie added via AddCookie
might not be retrievable.

Fixes #38437

Change-Id: I232b64ac489b39bb962fe4f7dbdc2ae44fcc0514
Reviewed-on: https://go-review.googlesource.com/c/go/+/235141
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/http/request.go

index e386f13a377ba4477826638154b47555451defc4..e924e2a07f90d9b82afd520d6dffe27a19d08031 100644 (file)
@@ -425,6 +425,8 @@ func (r *Request) Cookie(name string) (*Cookie, error) {
 // AddCookie does not attach more than one Cookie header field. That
 // means all cookies, if any, are written into the same line,
 // separated by semicolon.
+// AddCookie only sanitizes c's name and value, and does not sanitize
+// a Cookie header already present in the request.
 func (r *Request) AddCookie(c *Cookie) {
        s := fmt.Sprintf("%s=%s", sanitizeCookieName(c.Name), sanitizeCookieValue(c.Value))
        if c := r.Header.Get("Cookie"); c != "" {