Add a function call stackprotector tests.

Including a function call in the test programs for the gcc stack
protector flag tests exercises more of the compiler and makes it more
likely it'll detect problems.
This commit is contained in:
Darren Tucker 2019-10-24 14:39:49 +11:00
parent b9705393be
commit 9239a18f96
1 changed files with 10 additions and 4 deletions

View File

@ -213,20 +213,26 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
CFLAGS="$CFLAGS $t -Werror"
LDFLAGS="$LDFLAGS $t -Werror"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([[ #include <stdio.h> ]],
[AC_LANG_PROGRAM([[
#include <stdio.h>
int func (int t) {char b[100]; snprintf(b,sizeof b,"%d",t); return t;}
]],
[[
char x[256];
snprintf(x, sizeof(x), "XXX");
snprintf(x, sizeof(x), "XXX%d", func(1));
]])],
[ AC_MSG_RESULT([yes])
CFLAGS="$saved_CFLAGS $t"
LDFLAGS="$saved_LDFLAGS $t"
AC_MSG_CHECKING([if $t works])
AC_RUN_IFELSE(
[AC_LANG_PROGRAM([[ #include <stdio.h> ]],
[AC_LANG_PROGRAM([[
#include <stdio.h>
int func (int t) {char b[100]; snprintf(b,sizeof b,"%d",t); return t;}
]],
[[
char x[256];
snprintf(x, sizeof(x), "XXX");
snprintf(x, sizeof(x), "XXX%d", func(1));
]])],
[ AC_MSG_RESULT([yes])
break ],