mirror of
				https://github.com/python/cpython.git
				synced 2025-10-27 03:34:32 +00:00 
			
		
		
		
	Fix IndexError when parsing unexpectedly ending quoted-string. (GH-14813)
This exception was caused because the input ended unexpectedly with only one single quote instead of a pair with some value inside it.
This commit is contained in:
		
							parent
							
								
									a4a994bd3e
								
							
						
					
					
						commit
						719a062bcb
					
				
					 3 changed files with 7 additions and 1 deletions
				
			
		|  | @ -1191,7 +1191,7 @@ def get_bare_quoted_string(value): | ||||||
|             "expected '\"' but found '{}'".format(value)) |             "expected '\"' but found '{}'".format(value)) | ||||||
|     bare_quoted_string = BareQuotedString() |     bare_quoted_string = BareQuotedString() | ||||||
|     value = value[1:] |     value = value[1:] | ||||||
|     if value[0] == '"': |     if value and value[0] == '"': | ||||||
|         token, value = get_qcontent(value) |         token, value = get_qcontent(value) | ||||||
|         bare_quoted_string.append(token) |         bare_quoted_string.append(token) | ||||||
|     while value and value[0] != '"': |     while value and value[0] != '"': | ||||||
|  |  | ||||||
|  | @ -522,6 +522,10 @@ def test_get_bare_quoted_string_only_quotes(self): | ||||||
|         self._test_get_x(parser.get_bare_quoted_string, |         self._test_get_x(parser.get_bare_quoted_string, | ||||||
|                          '""', '""', '', [], '') |                          '""', '""', '', [], '') | ||||||
| 
 | 
 | ||||||
|  |     def test_get_bare_quoted_string_missing_endquotes(self): | ||||||
|  |         self._test_get_x(parser.get_bare_quoted_string, | ||||||
|  |                          '"', '""', '', [errors.InvalidHeaderDefect], '') | ||||||
|  | 
 | ||||||
|     def test_get_bare_quoted_string_following_wsp_preserved(self): |     def test_get_bare_quoted_string_following_wsp_preserved(self): | ||||||
|         self._test_get_x(parser.get_bare_quoted_string, |         self._test_get_x(parser.get_bare_quoted_string, | ||||||
|              '"foo"\t bar', '"foo"', 'foo', [], '\t bar') |              '"foo"\t bar', '"foo"', 'foo', [], '\t bar') | ||||||
|  |  | ||||||
|  | @ -0,0 +1,2 @@ | ||||||
|  | Fix ``IndexError`` when parsing email headers with unexpectedly ending | ||||||
|  | bare-quoted string value. Patch by Abhilash Raj. | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Abhilash Raj
						Abhilash Raj