diff --git a/dietlibc-0.31-defpath.patch b/dietlibc-0.31-defpath.patch new file mode 100644 index 0000000..c0878da --- /dev/null +++ b/dietlibc-0.31-defpath.patch @@ -0,0 +1,12 @@ +diff -up dietlibc-0.31/include/paths.h.~1~ dietlibc-0.31/include/paths.h +--- dietlibc-0.31/include/paths.h.defpath ++++ dietlibc-0.31/include/paths.h +@@ -2,7 +2,7 @@ + #define _PATHS_H + + #define _PATH_BSHELL "/bin/sh" +-#define _PATH_DEFPATH "/bin:/usr/bin:" ++#define _PATH_DEFPATH "/bin:/usr/bin" + + #define _PATH_DEVNULL "/dev/null" + diff --git a/dietlibc-0.31-stacksmash-dyn.patch b/dietlibc-0.31-stacksmash-dyn.patch new file mode 100644 index 0000000..1f6d81c --- /dev/null +++ b/dietlibc-0.31-stacksmash-dyn.patch @@ -0,0 +1,11 @@ +diff -up dietlibc-0.31/lib/stack_smash_handler2.c.~1~ dietlibc-0.31/lib/stack_smash_handler2.c +--- dietlibc-0.31/lib/stack_smash_handler2.c.~1~ 2007-09-01 14:13:21.000000000 +0200 ++++ dietlibc-0.31/lib/stack_smash_handler2.c 2007-09-01 14:13:40.000000000 +0200 +@@ -2,6 +2,7 @@ + #include + + void __stack_chk_fail(void); ++void __stack_chk_fail_local(void) __attribute__((__alias__("__stack_chk_fail"))); + + /* earlier versions of ProPolice actually gave the address and function + * name as arguments to the handler, so it could print some useful diff --git a/dietlibc-0.31-stacksmash.patch b/dietlibc-0.31-stacksmash.patch new file mode 100644 index 0000000..8044193 --- /dev/null +++ b/dietlibc-0.31-stacksmash.patch @@ -0,0 +1,40 @@ +2007-09-01 Enrico Scholz + * lib/stack_smash_handler2: modified __stack_chk_fail() to trigger + a segfault by accessing address 0x0. Every system with an MMU + known by me, segfaults by dereferencing a NULL pointer + + * Makefile: added hack to compile stack_smash_handler2 with + '--fno-omit-frame-pointer'. + +diff -up dietlibc-0.31/lib/stack_smash_handler2.c.~1~ dietlibc-0.31/lib/stack_smash_handler2.c +--- dietlibc-0.31/lib/stack_smash_handler2.c.stacksmash ++++ dietlibc-0.31/lib/stack_smash_handler2.c +@@ -8,5 +8,13 @@ void __stack_chk_fail(void); + * diagnostics. No more. :-( */ + void __stack_chk_fail(void) { + __write2("smashed stack detected, program terminated.\n"); +- _exit(127); ++ ++ /* trigger a segfault which can be inspected within a debugger (inclusive ++ * stack-trace). 'abort(3)' at this place would be too heavy weighted. ++ * ++ * TODO: limit this to systems which are known to have an MMU (resp. is ++ * dietlibc with stack-protector used on systems without an MMU?) ++ */ ++ while (1) ++ *(char *)0 = 0; + } +--- dietlibc-0.31/Makefile.stacksmash ++++ dietlibc-0.31/Makefile +@@ -172,9 +172,10 @@ $(OBJDIR)/%.o: %.S $(ARCH)/syscalls.h + $(OBJDIR)/pthread_%.o: libpthread/pthread_%.c + $(CROSS)$(CC) $(INC) $(CFLAGS) -c $< -o $@ + $(COMMENT) -$(CROSS)strip -x -R .comment -R .note $@ ++$(OBJDIR)/stack_smash_handler2.o: XCFLAGS:=-fno-omit-frame-pointer + + $(OBJDIR)/%.o: %.c +- $(CROSS)$(CC) $(INC) $(CFLAGS) -c $< -o $@ -D__dietlibc__ ++ $(CROSS)$(CC) $(INC) $(CFLAGS) $(XCFLAGS) -c $< -o $@ -D__dietlibc__ + $(COMMENT) -$(CROSS)strip -x -R .comment -R .note $@ + endif + diff --git a/lastver b/lastver new file mode 100644 index 0000000..48b9990 --- /dev/null +++ b/lastver @@ -0,0 +1 @@ +0.31 diff --git a/verinfo b/verinfo new file mode 100644 index 0000000..cc355f3 --- /dev/null +++ b/verinfo @@ -0,0 +1,2 @@ +http://www.kernel.org/pub/linux/libs/dietlibc/ +dietlibc-(.*?).tar.bz2