mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	The pointer guard used for pointer mangling was not initialized for static applications resulting in the security feature being disabled. The pointer guard is now correctly initialized to a random value for static applications. Existing static applications need to be recompiled to take advantage of the fix. The test tst-ptrguard1-static and tst-ptrguard1 add regression coverage to ensure the pointer guards are sufficiently random and initialized to a default value.
		
			
				
	
	
		
			13 lines
		
	
	
		
			293 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			13 lines
		
	
	
		
			293 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <stdint.h>
 | |
| 
 | |
| #define STACK_CHK_GUARD \
 | |
|   ({ uintptr_t x; asm ("movl %%gs:0x14, %0" : "=r" (x)); x; })
 | |
| 
 | |
| #define POINTER_CHK_GUARD \
 | |
|   ({							\
 | |
|      uintptr_t x;					\
 | |
|      asm ("movl %%gs:%c1, %0" : "=r" (x)		\
 | |
| 	  : "i" (offsetof (tcbhead_t, pointer_guard)));	\
 | |
|      x;							\
 | |
|    })
 |