mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	 954a7427ba
			
		
	
	
		954a7427ba
		
			
		
	
	
	
	
		
			
			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)
 |