diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-12-15 12:46:24 +0000 |
---|---|---|
committer | Michael Stahl <michael.stahl@allotropia.de> | 2022-01-14 12:10:30 +0100 |
commit | dd4ebf6216be0e309019596fca384f840dc8acdb (patch) | |
tree | f9b538934c608e4ee402e81a02c612921ad1855b /bridges | |
parent | f90618d38cc33c511f921aa940c0d65908146fef (diff) |
annocheck warning about missing .note.gnu.property section
copy and paste recommendation from:
https://sourceware.org/annobin/annobin.html/Test-cf-protection.html
and adapt like:
https://github.com/openssl/openssl/commit/51994e505dbb1cd0dd76869ec962e2948b77b585
where https://bugs.ruby-lang.org/attachments/8962 is similar
Intel docs have "The ENDBR32 and ENDBR64 (collectively ENDBRANCH) are
two new instructions that are used to mark valid indirect CALL/JMP
target locations in the program."
Change-Id: Ie867c263a888763db4478720ba189c9ec6cc974d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126859
Tested-by: Jenkins
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit af55dc3891f7950d392175004b2090cb0e54828e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127963
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Diffstat (limited to 'bridges')
-rw-r--r-- | bridges/source/cpp_uno/gcc3_linux_intel/call.s | 16 | ||||
-rw-r--r-- | bridges/source/cpp_uno/gcc3_linux_x86-64/call.s | 19 |
2 files changed, 35 insertions, 0 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/call.s b/bridges/source/cpp_uno/gcc3_linux_intel/call.s index 6be583247733..0a5870defcf3 100644 --- a/bridges/source/cpp_uno/gcc3_linux_intel/call.s +++ b/bridges/source/cpp_uno/gcc3_linux_intel/call.s @@ -290,3 +290,19 @@ privateSnippetExecutorClass: .align 4 .LEFDEc: .section .note.GNU-stack,"",@progbits + .section .note.gnu.property,"a" + .p2align 2 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + .string "GNU" +1: + .p2align 2 + .long 0xc0000002 + .long 3f - 2f +2: + .long 0x3 +3: + .p2align 2 +4: diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s b/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s index 53bfea8b254f..e7ff106244a8 100644 --- a/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s +++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s @@ -22,6 +22,9 @@ .type privateSnippetExecutor, @function privateSnippetExecutor: .LFB3: +#if defined(END_BRANCH_INS_SUPPORT) + endbr64 +#endif pushq %rbp .LCFI0: movq %rsp, %rbp @@ -121,3 +124,19 @@ privateSnippetExecutor: .align 8 .LEFDE1: .section .note.GNU-stack,"",@progbits + .section .note.gnu.property,"a" + .p2align 3 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + .string "GNU" +1: + .p2align 3 + .long 0xc0000002 + .long 3f - 2f +2: + .long 0x3 +3: + .p2align 3 +4: |