On 2/10/20 12:30 PM, Kees Cook wrote:
In order to check the matrix of possible states for handling READ_IMPLIES_EXEC across native, compat, and the state of PT_GNU_STACK, add tests for these execution conditions.
Signed-off-by: Kees Cook keescook@chromium.org
No issues for this to go through tip.
A few problems to fix first. This fails to compile when 32-bit libraries aren't installed. It should fail the 32-bit part and run other checks.
make kselftest TARGETS=exec make --no-builtin-rules ARCH=x86 -C ../../.. headers_install make[2]: Entering directory '/lkml/linux_5.6' INSTALL ./usr/include make[2]: Leaving directory '/lkml/linux_5.6' make[2]: Entering directory '/lkml/linux_5.6/tools/testing/selftests/exec' gcc -m32 -Wall -Wno-nonnull -D_GNU_SOURCE -Wl,-z,noexecstack -o /lkml/linux_5.6/tools/testing/selftests/exec/rie-compat-nx-gnu-stack.new read_implies_exec.c readelf -Wl /lkml/linux_5.6/tools/testing/selftests/exec/rie-compat-nx-gnu-stack.new | grep GNU_STACK | grep -q 'RW ' && \ mv /lkml/linux_5.6/tools/testing/selftests/exec/rie-compat-nx-gnu-stack.new /lkml/linux_5.6/tools/testing/selftests/exec/rie-compat-nx-gnu-stack In file included from /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h:9, from read_implies_exec.c:6: /usr/include/stdint.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory 26 | #include <bits/libc-header-start.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. readelf: Error: '/lkml/linux_5.6/tools/testing/selftests/exec/rie-compat-nx-gnu-stack.new': No such file make[2]: *** [Makefile:58: /lkml/linux_5.6/tools/testing/selftests/exec/rie-compat-nx-gnu-stack] Error 1 make[2]: Leaving directory '/lkml/linux_5.6/tools/testing/selftests/exec' make[1]: *** [Makefile:150: all] Error 2 make: *** [Makefile:1217: kselftest] Error 2
thanks, -- Shuah