|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
--- annobin.orig/tests/fortify-test 2022-01-10 09:50:07.005146672 +0000
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+++ annobin-10.45/tests/fortify-test 2022-01-10 10:23:56.827404265 +0000
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
@@ -37,30 +37,37 @@ fi
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
# Now add in our newly built plugin.
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
OPTS+=" -fplugin=$PLUGIN"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+# For debugging purposes, generate a linker map as well.
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+OPTS+=" -Wl,-Map,fortify-test.map"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
start_test
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
-$GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/main.c -o main.exe
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+# Use atexit.c rather than main.c as it is bigger.
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+COMMAND="$GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/atexit.c -o fortify-test.exe"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+$COMMAND
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
if [ $? != 0 ];
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
then
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
echo " $TEST_NAME: FAIL: unable to compile test file"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
- echo " $TEST_NAME: compile command: $GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/main.c -o main.exe"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+ echo " $TEST_NAME: command: $COMMAND"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
end_test
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
exit 1
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
# Run annocheck
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
-SKIPS="--skip-cf-protection --skip-property-note --skip-stack-realign --skip-entry --skip-dynamic-tags --skip-lto --skip-warnings --skip-dynamic-tags --skip-not-dynamic-tags --skip-branch-protection --skip-not-branch-protection"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
-$ANNOCHECK main.exe $SKIPS > main.out
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
-grep -e "Overall: FAIL" main.out
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+SKIPS="--skip-all --test-fortify"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+A_COMMAND="$ANNOCHECK fortify-test.exe $SKIPS"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+$A_COMMAND > fortify-test.out
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+grep -e "Overall: FAIL" fortify-test.out
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
if [ $? != 0 ];
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
then
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
echo " $TEST_NAME: FAIL: compiling with -D_FORTIFY_SOURCE=2 still produces an executable that passes annocheck"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
- echo " $TEST_NAME: compile command: $GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/main.c -o main.exe"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
- echo " $TEST_NAME: annocheck command: $ANNOCHECK main.exe $SKIPS"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+ echo " $TEST_NAME: compile command: $COMMAND"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+ echo " $TEST_NAME: annocheck command: $A_COMMAND"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
echo " $TEST_NAME: annocheck output (with verbose enabled):"
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
- $ANNOCHECK main.exe $SKIPS --verbose
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
- uuencode main.exe main.exe
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+ $A_COMMAND --verbose
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+ uuencode fortify-test.exe fortify-test.exe
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+ uuencode fortify-test.map fortify-test.map
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
end_test
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
exit 1
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
--- annobin.orig/gcc-plugin/annobin.cc 2022-01-10 09:50:06.991146761 +0000
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+++ annobin-10.45/gcc-plugin/annobin.cc 2022-01-10 11:31:49.507826587 +0000
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
@@ -1,5 +1,5 @@
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
/* annobin - a gcc plugin for annotating binary files.
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
- Copyright (c) 2017 - 2021 Red Hat.
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+ Copyright (c) 2017 - 2022 Red Hat.
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
Created by Nick Clifton.
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
This is free software; you can redistribute it and/or modify it
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
@@ -2485,6 +2485,7 @@ annobin_emit_end_symbol (const char * su
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
fprintf (asm_out_file, "\t.size %s%s, 0\n", annobin_current_endname, suffix);
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
annobin_inform (INFORM_VERBOSE, "Create symbol %s%s", annobin_current_endname, suffix);
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+#if 0
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
/* If there is a bias to the start symbol, we can end up with the case where
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
the start symbol is after the end symbol. (If the section is empty).
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
Catch that and adjust the start symbol. This also pacifies eu-elflint
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
@@ -2509,7 +2510,8 @@ annobin_emit_end_symbol (const char * su
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
annobin_current_endname, suffix);
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
fprintf (asm_out_file, "\t.endif\n");
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
}
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
-
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+#endif
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
fprintf (asm_out_file, "\t.popsection\n");
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
}
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
@@ -2774,7 +2776,7 @@ plugin_init (struct plugin_name_args *
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
solution is needed. */
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
annobin_attach_type = group;
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
#if GCCPLUGIN_VERSION_MAJOR >= 11
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
- if (target_start_sym_bias == 0)
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
+ /* if (target_start_sym_bias == 0)*/
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
annobin_attach_type = link_order;
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
#endif
|
|
![](https://seccdn.libravatar.org/avatar/a6e03922a7943e9b1fbcae3c26b0b0c7f3b3e44c136357319efe4fe35ea4bbd3?s=16&d=retro) |
efff188 |
}
|