mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
	
	
		
			22 lines
		
	
	
	
		
			444 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			22 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 |