diff mbox

Enforce stack protector usage

Message ID 1404288324-16766-1-git-send-email-mrezanin@redhat.com
State New
Headers show

Commit Message

Miroslav Rezanina July 2, 2014, 8:05 a.m. UTC
From: Miroslav Rezanina <mrezanin@redhat.com>

If --enable-stack-protector is used is used, configure script try to use
--fstack-protector-strong. In case it's not supported, --fstack-protector-all
is enabled. If both protectors are not supported, configure does not use
any protector at all without any notification.

This patch reports error when user requests stack protector to be used and
both protector modes are not supported. Behavior is not changed in case
user do not use any of --enable-stack-protector/--disable-stack-protector.

Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
 configure | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Markus Armbruster July 2, 2014, 9:30 a.m. UTC | #1
mrezanin@redhat.com writes:

> From: Miroslav Rezanina <mrezanin@redhat.com>
>
> If --enable-stack-protector is used is used, configure script try to use
> --fstack-protector-strong. In case it's not supported, --fstack-protector-all
> is enabled. If both protectors are not supported, configure does not use
> any protector at all without any notification.
>
> This patch reports error when user requests stack protector to be used and
> both protector modes are not supported. Behavior is not changed in case
> user do not use any of --enable-stack-protector/--disable-stack-protector.
>
> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>

Reviewed-by: Markus Armbruster <armbru@redhat.com>
Paolo Bonzini July 2, 2014, 9:35 a.m. UTC | #2
Il 02/07/2014 10:05, mrezanin@redhat.com ha scritto:
> From: Miroslav Rezanina <mrezanin@redhat.com>
>
> If --enable-stack-protector is used is used, configure script try to use
> --fstack-protector-strong. In case it's not supported, --fstack-protector-all
> is enabled. If both protectors are not supported, configure does not use
> any protector at all without any notification.
>
> This patch reports error when user requests stack protector to be used and
> both protector modes are not supported. Behavior is not changed in case
> user do not use any of --enable-stack-protector/--disable-stack-protector.
>
> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> ---
>  configure | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/configure b/configure
> index 7dd43fd..b880954 100755
> --- a/configure
> +++ b/configure
> @@ -1491,6 +1491,7 @@ done
>
>  if test "$stack_protector" != "no" ; then
>    gcc_flags="-fstack-protector-strong -fstack-protector-all"
> +  sp_on=0
>    for flag in $gcc_flags; do
>      # We need to check both a compile and a link, since some compiler
>      # setups fail only on a .c->.o compile and some only at link time
> @@ -1498,9 +1499,15 @@ if test "$stack_protector" != "no" ; then
>         compile_prog "-Werror $flag" ""; then
>        QEMU_CFLAGS="$QEMU_CFLAGS $flag"
>        LIBTOOLFLAGS="$LIBTOOLFLAGS -Wc,$flag"
> +      sp_on=1
>        break
>      fi
>    done
> +  if test "$stack_protector" == "yes" ; then
> +    if test "$sp_on" == "0" ; then
> +      error_exit "Stack protector not supported"
> +    fi
> +  fi
>  fi
>
>  # Workaround for http://gcc.gnu.org/PR55489.  Happens with -fPIE/-fPIC and
>

Thanks, queued for -rc1.

Paolo
diff mbox

Patch

diff --git a/configure b/configure
index 7dd43fd..b880954 100755
--- a/configure
+++ b/configure
@@ -1491,6 +1491,7 @@  done
 
 if test "$stack_protector" != "no" ; then
   gcc_flags="-fstack-protector-strong -fstack-protector-all"
+  sp_on=0
   for flag in $gcc_flags; do
     # We need to check both a compile and a link, since some compiler
     # setups fail only on a .c->.o compile and some only at link time
@@ -1498,9 +1499,15 @@  if test "$stack_protector" != "no" ; then
        compile_prog "-Werror $flag" ""; then
       QEMU_CFLAGS="$QEMU_CFLAGS $flag"
       LIBTOOLFLAGS="$LIBTOOLFLAGS -Wc,$flag"
+      sp_on=1
       break
     fi
   done
+  if test "$stack_protector" == "yes" ; then
+    if test "$sp_on" == "0" ; then
+      error_exit "Stack protector not supported"
+    fi
+  fi
 fi
 
 # Workaround for http://gcc.gnu.org/PR55489.  Happens with -fPIE/-fPIC and