Line 0
Link Here
|
|
|
1 |
#include <syslog.h> |
2 |
#include <stdlib.h> |
3 |
#include <sys/param.h> |
4 |
|
5 |
unsigned long __guard = 0UL; static void __guard_setup(void) __attribute__ ((constructor)); |
6 |
void __stack_smash_handler(char func[], int damaged __attribute__ ((unused))); |
7 |
static void __guard_setup(void) { if (__guard != 0UL) return; __guard = 0xFF0A0D00UL; } |
8 |
|
9 |
void __stack_smash_handler(char func[], int damaged) { |
10 |
syslog(LOG_CRIT, "stack overflow in function %s(); %s=%p __guard_setup=%p __guard=%p " \ |
11 |
"PPID=%d PID=%d UID=%d EUID=%d GID=%d EGID=%d", |
12 |
func, func, __guard_setup, __guard, |
13 |
getppid(), getpid(), getuid(), geteuid(), getgid(), getegid()); |
14 |
_exit(127); |
15 |
} |