mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	[3.13] gh-126223: Propagate unicode errors in _interpreters.create() (GH-126224) (#126242)
				
					
				
			gh-126223: Propagate unicode errors in `_interpreters.create()` (GH-126224)
(cherry picked from commit 01415213d7)
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: sobolevn <mail@sobolevn.me>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
			
			
This commit is contained in:
		
							parent
							
								
									ac00bf0e96
								
							
						
					
					
						commit
						89664d4d48
					
				
					 3 changed files with 10 additions and 1 deletions
				
			
		|  | @ -55,6 +55,9 @@ def test_in_main(self): | ||||||
|         self.assertIsInstance(interp, interpreters.Interpreter) |         self.assertIsInstance(interp, interpreters.Interpreter) | ||||||
|         self.assertIn(interp, interpreters.list_all()) |         self.assertIn(interp, interpreters.list_all()) | ||||||
| 
 | 
 | ||||||
|  |         # GH-126221: Passing an invalid Unicode character used to cause a SystemError | ||||||
|  |         self.assertRaises(UnicodeEncodeError, _interpreters.create, '\udc80') | ||||||
|  | 
 | ||||||
|     def test_in_thread(self): |     def test_in_thread(self): | ||||||
|         lock = threading.Lock() |         lock = threading.Lock() | ||||||
|         interp = None |         interp = None | ||||||
|  |  | ||||||
|  | @ -0,0 +1,2 @@ | ||||||
|  | Raise a :exc:`UnicodeEncodeError` instead of a :exc:`SystemError` upon | ||||||
|  | calling :func:`!_interpreters.create` with an invalid Unicode character. | ||||||
|  | @ -403,7 +403,11 @@ config_from_object(PyObject *configobj, PyInterpreterConfig *config) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     else if (PyUnicode_Check(configobj)) { |     else if (PyUnicode_Check(configobj)) { | ||||||
|         if (init_named_config(config, PyUnicode_AsUTF8(configobj)) < 0) { |         const char *utf8name = PyUnicode_AsUTF8(configobj); | ||||||
|  |         if (utf8name == NULL) { | ||||||
|  |             return -1; | ||||||
|  |         } | ||||||
|  |         if (init_named_config(config, utf8name) < 0) { | ||||||
|             return -1; |             return -1; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Miss Islington (bot)
						Miss Islington (bot)