diff options
Diffstat (limited to 'src/net/http/cookie.go')
| -rw-r--r-- | src/net/http/cookie.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/net/http/cookie.go b/src/net/http/cookie.go index a0a4690ddc..5a67476cd4 100644 --- a/src/net/http/cookie.go +++ b/src/net/http/cookie.go @@ -168,7 +168,7 @@ func (c *Cookie) String() string { log.Printf("net/http: invalid Cookie.Domain %q; dropping domain attribute", c.Domain) } } - if c.Expires.Unix() > 0 { + if validCookieExpires(c.Expires) { b.WriteString("; Expires=") b2 := b.Bytes() b.Reset() @@ -246,6 +246,12 @@ func validCookieDomain(v string) bool { return false } +// validCookieExpires returns whether v is a valid cookie expires-value. +func validCookieExpires(t time.Time) bool { + // IETF RFC 6265 Section 5.1.1.5, the year must not be less than 1601 + return t.Year() >= 1601 +} + // isCookieDomainName returns whether s is a valid domain name or a valid // domain name with a leading dot '.'. It is almost a direct copy of // package net's isDomainName. |
