File tree Expand file tree Collapse file tree 2 files changed +20
-4
lines changed
Expand file tree Collapse file tree 2 files changed +20
-4
lines changed Original file line number Diff line number Diff line change @@ -338,7 +338,8 @@ def update(self, values):
338338 if key not in self ._reserved :
339339 raise CookieError ("Invalid attribute %r" % (key ,))
340340 if _has_control_character (key , val ):
341- raise CookieError (f"Control characters are not allowed in cookies { key !r} { val !r} " )
341+ raise CookieError ("Control characters are not allowed in "
342+ f"cookies { key !r} { val !r} " )
342343 data [key ] = val
343344 dict .update (self , data )
344345
@@ -371,9 +372,15 @@ def __getstate__(self):
371372 }
372373
373374 def __setstate__ (self , state ):
374- self ._key = state ['key' ]
375- self ._value = state ['value' ]
376- self ._coded_value = state ['coded_value' ]
375+ key = state ['key' ]
376+ value = state ['value' ]
377+ coded_value = state ['coded_value' ]
378+ if _has_control_character (key , value , coded_value ):
379+ raise CookieError ("Control characters are not allowed in cookies "
380+ f"{ key !r} { value !r} { coded_value !r} " )
381+ self ._key = key
382+ self ._value = value
383+ self ._coded_value = coded_value
377384
378385 def output (self , attrs = None , header = "Set-Cookie:" ):
379386 return "%s %s" % (header , self .OutputString (attrs ))
Original file line number Diff line number Diff line change @@ -604,6 +604,15 @@ def test_control_characters(self):
604604 with self .assertRaises (cookies .CookieError ):
605605 morsel ["path" ] = c0
606606
607+ # .__setstate__()
608+ with self .assertRaises (cookies .CookieError ):
609+ morsel .__setstate__ ({'key' : c0 , 'value' : 'val' , 'coded_value' : 'coded' })
610+ with self .assertRaises (cookies .CookieError ):
611+ morsel .__setstate__ ({'key' : 'key' , 'value' : c0 , 'coded_value' : 'coded' })
612+ with self .assertRaises (cookies .CookieError ):
613+ morsel .__setstate__ ({'key' : 'key' , 'value' : 'val' , 'coded_value' : c0 })
614+
615+
607616 # .setdefault()
608617 with self .assertRaises (cookies .CookieError ):
609618 morsel .setdefault ("path" , c0 )
You can’t perform that action at this time.
0 commit comments