Fix stack protector problems with newer GCC versions

git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@490 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
Blue Swirl
2009-05-20 18:07:09 +00:00
parent 9611192b8d
commit 8c883ca477
2 changed files with 16 additions and 4 deletions

View File

@@ -103,5 +103,6 @@ extern int errno_int;
extern long __guard[8]; extern long __guard[8];
void __stack_smash_handler(const char *func, int damaged); void __stack_smash_handler(const char *func, int damaged);
void __stack_chk_fail(void);
#endif /* _H_STRING */ #endif /* _H_STRING */

View File

@@ -86,13 +86,24 @@ long __guard[8] = {
0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0
}; };
void __stack_smash_handler(const char *func, int damaged) static void freeze(void)
{ {
printk("Propolice detected a stack smashing attack %x at function %s,"
" freezing\n", damaged, func);
// Freeze // Freeze
// XXX: Disable interrupts? // XXX: Disable interrupts?
for(;;) for(;;)
; ;
} }
void __stack_smash_handler(const char *func, int damaged)
{
printk("Propolice detected a stack smashing attack %x at function %s,"
" freezing\n", damaged, func);
freeze();
}
void __stack_chk_fail(void)
{
printk("Propolice detected a stack smashing attack, freezing\n");
freeze();
}