mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			21 lines
		
	
	
	
		
			444 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
	
		
			444 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
 | |
| # http://python.org/sf/1303614
 | |
| 
 | |
| class Strange(object):
 | |
|     def __hash__(self):
 | |
|         return hash('hello')
 | |
| 
 | |
|     def __eq__(self, other):
 | |
|         x.__dict__ = {}   # the old x.__dict__ is deallocated
 | |
|         return False
 | |
| 
 | |
| 
 | |
| class X(object):
 | |
|     pass
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     v = 123
 | |
|     x = X()
 | |
|     x.__dict__ = {Strange(): 42,
 | |
|                   'hello': v+456}
 | |
|     x.hello  # segfault: the above dict is accessed after it's deallocated
 | 
