|
|
9ae3a8 |
From 3938c85004bbd742c5a8c7e1480ed14c2420cd9d Mon Sep 17 00:00:00 2001
|
|
|
9ae3a8 |
From: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
Date: Tue, 26 Aug 2014 13:33:14 +0200
|
|
|
9ae3a8 |
Subject: [PATCH 1/6] Enforce stack protector usage
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Message-id: <1409059994-2966-1-git-send-email-mrezanin@redhat.com>
|
|
|
9ae3a8 |
Patchwork-id: 60699
|
|
|
9ae3a8 |
O-Subject: [RHEL-7.1 qemu-kvm PATCH] Enforce stack protector usage
|
|
|
9ae3a8 |
Bugzilla: 1064260
|
|
|
9ae3a8 |
RH-Acked-by: Amos Kong <akong@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Jeff Nelson <jenelson@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Fam Zheng <famz@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
From: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
If --enable-stack-protector is used is used, configure script try to use
|
|
|
9ae3a8 |
--fstack-protector-strong. In case it's not supported, --fstack-protector-all
|
|
|
9ae3a8 |
is enabled. If both protectors are not supported, configure does not use
|
|
|
9ae3a8 |
any protector at all without any notification.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
This patch reports error when user requests stack protector to be used and
|
|
|
9ae3a8 |
both protector modes are not supported. Behavior is not changed in case
|
|
|
9ae3a8 |
user do not use any of --enable-stack-protector/--disable-stack-protector.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
[Fix non-POSIX operator in test. - Paolo]
|
|
|
9ae3a8 |
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
(cherry picked from commit 3b463a3fa8f7690ffa3ef273993dff349b3a73d3)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Conflicts:
|
|
|
9ae3a8 |
configure - upstream use -fstack-protector-all as second option
|
|
|
9ae3a8 |
we used -fstack-protector.
|
|
|
9ae3a8 |
Updated to upstream behavior
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
---
|
|
|
9ae3a8 |
configure | 9 ++++++++-
|
|
|
9ae3a8 |
1 files changed, 8 insertions(+), 1 deletions(-)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
diff --git a/configure b/configure
|
|
|
9ae3a8 |
index 4552e08..0c666e5 100755
|
|
|
9ae3a8 |
--- a/configure
|
|
|
9ae3a8 |
+++ b/configure
|
|
|
9ae3a8 |
@@ -1303,14 +1303,21 @@ for flag in $gcc_flags; do
|
|
|
9ae3a8 |
done
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
if test "$stack_protector" != "no" ; then
|
|
|
9ae3a8 |
- gcc_flags="-fstack-protector-strong -fstack-protector"
|
|
|
9ae3a8 |
+ gcc_flags="-fstack-protector-strong -fstack-protector-all"
|
|
|
9ae3a8 |
+ sp_on=0
|
|
|
9ae3a8 |
for flag in $gcc_flags; do
|
|
|
9ae3a8 |
if compile_prog "-Werror $flag" "" ; then
|
|
|
9ae3a8 |
QEMU_CFLAGS="$QEMU_CFLAGS $flag"
|
|
|
9ae3a8 |
LIBTOOLFLAGS="$LIBTOOLFLAGS -Wc,$flag"
|
|
|
9ae3a8 |
+ sp_on=1
|
|
|
9ae3a8 |
break
|
|
|
9ae3a8 |
fi
|
|
|
9ae3a8 |
done
|
|
|
9ae3a8 |
+ if test "$stack_protector" = yes; then
|
|
|
9ae3a8 |
+ if test $sp_on = 0; then
|
|
|
9ae3a8 |
+ error_exit "Stack protector not supported"
|
|
|
9ae3a8 |
+ fi
|
|
|
9ae3a8 |
+ fi
|
|
|
9ae3a8 |
fi
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
# Workaround for http://gcc.gnu.org/PR55489. Happens with -fPIE/-fPIC and
|
|
|
9ae3a8 |
--
|
|
|
9ae3a8 |
1.7.1
|
|
|
9ae3a8 |
|