Merge pull request #1159 from dorfsmay/ignore_invalid_cookies
Ignore invalid cookies
This commit is contained in:
		| @@ -102,8 +102,6 @@ impl Header for Cookie { | |||||||
|                 let key_val = (key_val.next(), key_val.next()); |                 let key_val = (key_val.next(), key_val.next()); | ||||||
|                 if let (Some(key), Some(val)) = key_val { |                 if let (Some(key), Some(val)) = key_val { | ||||||
|                     vec_map.insert(key.trim().to_owned().into(), val.trim().to_owned().into()); |                     vec_map.insert(key.trim().to_owned().into(), val.trim().to_owned().into()); | ||||||
|                 } else { |  | ||||||
|                     return Err(::Error::Header); |  | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| @@ -213,10 +211,20 @@ mod tests { | |||||||
|         cookie.append("foo", "bar"); |         cookie.append("foo", "bar"); | ||||||
|         assert_eq!(cookie, parsed); |         assert_eq!(cookie, parsed); | ||||||
|  |  | ||||||
|  |         let parsed = Cookie::parse_header(&b"foo=bar;".to_vec().into()).unwrap(); | ||||||
|  |         assert_eq!(cookie, parsed); | ||||||
|  |  | ||||||
|         let parsed = Cookie::parse_header(&b"foo=bar; baz=quux".to_vec().into()).unwrap(); |         let parsed = Cookie::parse_header(&b"foo=bar; baz=quux".to_vec().into()).unwrap(); | ||||||
|         cookie.append("baz", "quux"); |         cookie.append("baz", "quux"); | ||||||
|         assert_eq!(cookie, parsed); |         assert_eq!(cookie, parsed); | ||||||
|  |  | ||||||
|  |         let parsed = Cookie::parse_header(&b"foo=bar;; baz=quux".to_vec().into()).unwrap(); | ||||||
|  |         assert_eq!(cookie, parsed); | ||||||
|  |  | ||||||
|  |         let parsed = Cookie::parse_header(&b"foo=bar; invalid ; bad; ;; baz=quux".to_vec().into()) | ||||||
|  |             .unwrap(); | ||||||
|  |         assert_eq!(cookie, parsed); | ||||||
|  |  | ||||||
|         let parsed = Cookie::parse_header(&b" foo  =    bar;baz= quux  ".to_vec().into()).unwrap(); |         let parsed = Cookie::parse_header(&b" foo  =    bar;baz= quux  ".to_vec().into()).unwrap(); | ||||||
|         assert_eq!(cookie, parsed); |         assert_eq!(cookie, parsed); | ||||||
|  |  | ||||||
| @@ -241,9 +249,6 @@ mod tests { | |||||||
|                 .unwrap(); |                 .unwrap(); | ||||||
|         cookie.append("double", "=2"); |         cookie.append("double", "=2"); | ||||||
|         assert_eq!(cookie, parsed); |         assert_eq!(cookie, parsed); | ||||||
|  |  | ||||||
|         Cookie::parse_header(&b"foo;bar=baz;quux".to_vec().into()).unwrap_err(); |  | ||||||
|  |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user