[OpenBIOS] r490 - in trunk/openbios-devel: include/libc libc

svn at openbios.org svn at openbios.org
Wed May 20 20:07:09 CEST 2009


Author: blueswirl
Date: 2009-05-20 20:07:09 +0200 (Wed, 20 May 2009)
New Revision: 490

Modified:
   trunk/openbios-devel/include/libc/string.h
   trunk/openbios-devel/libc/misc.c
Log:
Fix stack protector problems with newer GCC versions

Modified: trunk/openbios-devel/include/libc/string.h
===================================================================
--- trunk/openbios-devel/include/libc/string.h	2009-05-17 18:59:32 UTC (rev 489)
+++ trunk/openbios-devel/include/libc/string.h	2009-05-20 18:07:09 UTC (rev 490)
@@ -103,5 +103,6 @@
 extern long __guard[8];
 
 void __stack_smash_handler(const char *func, int damaged);
+void __stack_chk_fail(void);
 
 #endif   /* _H_STRING */

Modified: trunk/openbios-devel/libc/misc.c
===================================================================
--- trunk/openbios-devel/libc/misc.c	2009-05-17 18:59:32 UTC (rev 489)
+++ trunk/openbios-devel/libc/misc.c	2009-05-20 18:07:09 UTC (rev 490)
@@ -86,13 +86,24 @@
     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
     // XXX: Disable interrupts?
     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();
+}




More information about the OpenBIOS mailing list