[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v6 0/4] Add/enable stack protector
Both GCC and Clang support -fstack-protector feature, which add stack canaries to functions where stack corruption is possible. This series makes possible to use this feature in Xen. I tested this on ARM64 and it is working as intended. Tested both with GCC and Clang. Also tested with "-fstack-protector-all" compilation option to ensure that initialization code works as expected. It is hard to enable this feature on x86, as GCC stores stack canary in %fs:40 by default, but Xen can't use %fs for various reasons. It is possibly to change stack canary location new newer GCC versions, but attempt to do this uncovered a whole host problems with GNU ld. So, this series focus mostly on ARM. Previous version of the series was acked for 4.20 release. Changes in v6: - Moved stack guard initialization code to the header file - Expanded commit message for "[PATCH v6 3/4] xen: arm: enable stack protector feature" - Dropped couple of R-b tags - Added comment to "PATCH v6 4/4] CHANGELOG.md: Mention stack-protector feature", mentioning that it should be reworked if (almost certainly) it will not get into 4.20. - Tested with "-fstack-protector-all" Changes in v5: - ARM code calls boot_stack_chk_guard_setup() from early C code - Bringed back stack-protector.h because C code needs to call boot_stack_chk_guard_setup() - Fixed formatting - Added Andrew's R-b tag Changes in v4: - Added patch to CHANGELOG.md - Removed stack-protector.h because we dropped support for Xen's built-in RNG code and rely only on own implementation - Changes in individual patches are covered in their respect commit messages Changes in v3: - Removed patch for riscv - Changes in individual patches are covered in their respect commit messages Changes in v2: - Patch "xen: common: add ability to enable stack protector" was divided into two patches. - Rebase onto Andrew's patch that removes -fno-stack-protector-all - Tested on RISC-V thanks to Oleksii Kurochko - Changes in individual patches covered in their respect commit messages Volodymyr Babchuk (4): common: remove -fno-stack-protector from EMBEDDED_EXTRA_CFLAGS xen: common: add ability to enable stack protector xen: arm: enable stack protector feature CHANGELOG.md: Mention stack-protector feature CHANGELOG.md | 1 + Config.mk | 2 +- stubdom/Makefile | 2 ++ tools/firmware/Rules.mk | 2 ++ tools/tests/x86_emulator/testcase.mk | 2 +- xen/Makefile | 6 ++++ xen/arch/arm/Kconfig | 1 + xen/arch/arm/setup.c | 3 ++ xen/arch/x86/boot/Makefile | 1 + xen/common/Kconfig | 15 ++++++++++ xen/common/Makefile | 1 + xen/common/stack-protector.c | 21 ++++++++++++++ xen/include/xen/stack-protector.h | 43 ++++++++++++++++++++++++++++ 13 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 xen/common/stack-protector.c create mode 100644 xen/include/xen/stack-protector.h -- 2.47.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |