diff -uNr udev-039.orig/klibc/klibc/Makefile udev-039.new/klibc/klibc/Makefile --- udev-039.orig/klibc/klibc/Makefile 2004-10-15 18:08:29.000000000 -0400 +++ udev-039.new/klibc/klibc/Makefile 2005-01-22 20:21:23.874358768 -0500 @@ -46,7 +46,7 @@ lrand48.o jrand48.o mrand48.o nrand48.o srand48.o seed48.o \ inet/inet_ntoa.o inet/inet_aton.o inet/inet_addr.o \ inet/inet_ntop.o inet/inet_pton.o inet/bindresvport.o \ - send.o recv.o + send.o recv.o ssp.o ifeq ($(ERRLIST),1) LIBOBJS += errlist.o endif diff -uNr udev-039.orig/klibc/klibc/ssp.c udev-039.new/klibc/klibc/ssp.c --- udev-039.orig/klibc/klibc/ssp.c 1969-12-31 19:00:00.000000000 -0500 +++ udev-039.new/klibc/klibc/ssp.c 2004-11-06 15:38:07.000000000 -0500 @@ -0,0 +1,16 @@ +#include +#include +#include +#include + +unsigned long __guard = 0UL; static void __guard_setup(void) __attribute__ ((constructor)); +void __stack_smash_handler(char func[], int damaged __attribute__ ((unused))); +static void __guard_setup(void) { if (__guard != 0UL) return; __guard = 0xFF0A0D00UL; } + +void __stack_smash_handler(char func[], int damaged) { + syslog(LOG_CRIT, "stack overflow in function %s(); %s=%p __guard_setup=%p __guard=%p " \ + "PPID=%d PID=%d UID=%d EUID=%d GID=%d EGID=%d", + func, func, __guard_setup, __guard, + getppid(), getpid(), getuid(), geteuid(), getgid(), getegid()); + _exit(127); +}