File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1360,16 +1360,13 @@ def get_word(value):
13601360 leader , value = get_cfws (value )
13611361 else :
13621362 leader = None
1363- if value :
1364- if value [0 ]== '"' :
1365- token , value = get_quoted_string (value )
1366- elif value [0 ] in SPECIALS :
1367- raise errors .HeaderParseError ("Expected 'atom' or 'quoted-string' "
1368- "but found '{}'" .format (value ))
1369- else :
1370- token , value = get_atom (value )
1371- if leader is not None :
1372- token [:0 ] = [leader ]
1363+ if not value :
1364+ raise errors .HeaderParseError ("Expected 'atom' or 'quoted-string' "
1365+ "but found nothing." )
1366+ if value [0 ]== '"' :
1367+ token , value = get_quoted_string (value )
1368+ elif value [0 ] in SPECIALS :
1369+ raise errors .HeaderParseError ((value ))
13731370 else :
13741371 token , value = get_atom (value )
13751372 if leader is not None :
Original file line number Diff line number Diff line change @@ -931,18 +931,10 @@ def test_get_word_atom_yields_atom(self):
931931 self .assertEqual (word [0 ].token_type , 'cfws' )
932932
933933 def test_get_word_all_CFWS (self ):
934- word = self ._test_get_x (parser .get_word ,
935- '(Recipients list suppressed' ,
936- str (parser .CFWSList ([parser .Comment ([
937- parser .WhiteSpaceTerminal ('Recipients' , 'ptext' ),
938- parser .WhiteSpaceTerminal (' ' , 'fws' ),
939- parser .WhiteSpaceTerminal ('list' , 'ptext' ),
940- parser .WhiteSpaceTerminal (' ' , 'fws' ),
941- parser .WhiteSpaceTerminal ('suppressed' , 'ptext' )
942- ])])),
943- ' ' , [], ''
944- )
945- self .assertEqual (word .token_type , 'cfws' )
934+ # bpo-29412: Test that we don't raise IndexError when parsing CFWS only
935+ # token.
936+ with self .assertRaises (errors .HeaderParseError ):
937+ parser .get_word ('(Recipients list suppressed' )
946938
947939 def test_get_word_qs_yields_qs (self ):
948940 word = self ._test_get_x (parser .get_word ,
Original file line number Diff line number Diff line change 1+ Fix IndexError in parsing a header value with only comments in some headers.
2+ Patch by Abhilash Raj.
You can’t perform that action at this time.
0 commit comments