mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	It did not work because the signature of code object constructor was changed. Also, it used old format of bytecode (pre-wordcode).
		
			
				
	
	
		
			19 lines
		
	
	
	
		
			628 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
	
		
			628 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""
 | 
						|
Broken bytecode objects can easily crash the interpreter.
 | 
						|
 | 
						|
This is not going to be fixed.  It is generally agreed that there is no
 | 
						|
point in writing a bytecode verifier and putting it in CPython just for
 | 
						|
this.  Moreover, a verifier is bound to accept only a subset of all safe
 | 
						|
bytecodes, so it could lead to unnecessary breakage.
 | 
						|
 | 
						|
For security purposes, "restricted" interpreters are not going to let
 | 
						|
the user build or load random bytecodes anyway.  Otherwise, this is a
 | 
						|
"won't fix" case.
 | 
						|
 | 
						|
"""
 | 
						|
 | 
						|
import types
 | 
						|
 | 
						|
co = types.CodeType(0, 0, 0, 0, 0, 0, b'\x04\x00\x71\x00',
 | 
						|
                    (), (), (), '', '', 1, b'')
 | 
						|
exec(co)
 |