diff options
| author | Serhiy Storchaka <storchaka@gmail.com> | 2014-11-02 20:18:25 (GMT) |
|---|---|---|
| committer | Serhiy Storchaka <storchaka@gmail.com> | 2014-11-02 20:18:25 (GMT) |
| commit | 8cf7c1cff0f1176387118826fffdf1c517405f3a (patch) | |
| tree | 3d417f11c533d4a72568492aa892aefc94e49320 /Lib/http/cookies.py | |
| parent | a5c9c37dd51cdec4e858fde6a42bf6b2868cae48 (diff) | |
| download | cpython-8cf7c1cff0f1176387118826fffdf1c517405f3a.zip cpython-8cf7c1cff0f1176387118826fffdf1c517405f3a.tar.gz cpython-8cf7c1cff0f1176387118826fffdf1c517405f3a.tar.bz2 | |
Issue #22775: Fixed unpickling of http.cookies.SimpleCookie with protocol 2
and above. Patch by Tim Graham.
Diffstat (limited to 'Lib/http/cookies.py')
| -rw-r--r-- | Lib/http/cookies.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Lib/http/cookies.py b/Lib/http/cookies.py index 556d101..a6de6d5 100644 --- a/Lib/http/cookies.py +++ b/Lib/http/cookies.py @@ -486,8 +486,12 @@ class BaseCookie(dict): def __setitem__(self, key, value): """Dictionary style assignment.""" - rval, cval = self.value_encode(value) - self.__set(key, rval, cval) + if isinstance(value, Morsel): + # allow assignment of constructed Morsels (e.g. for pickling) + dict.__setitem__(self, key, value) + else: + rval, cval = self.value_encode(value) + self.__set(key, rval, cval) def output(self, attrs=None, header="Set-Cookie:", sep="\015\012"): """Return a string suitable for HTTP.""" |
