diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-12-15 12:46:24 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2022-01-06 14:56:27 +0100 |
commit | af55dc3891f7950d392175004b2090cb0e54828e (patch) | |
tree | 2cf0a87bf981393810b1e8ec2286041815a03d85 /bridges | |
parent | a65c1e2d81b12c8ce96fa5cddcf11fabf7bbf709 (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>
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: |