initial checkin

This commit is contained in:
ensc 2007-09-01 12:23:20 +00:00
commit fc90cd4957
5 changed files with 66 additions and 0 deletions

View file

@ -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"

View file

@ -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 <write12.h>
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

View file

@ -0,0 +1,40 @@
2007-09-01 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
* 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

1
lastver Normal file
View file

@ -0,0 +1 @@
0.31

2
verinfo Normal file
View file

@ -0,0 +1,2 @@
http://www.kernel.org/pub/linux/libs/dietlibc/
dietlibc-(.*?).tar.bz2