diff --git a/SOURCES/0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch b/SOURCES/0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch new file mode 100644 index 0000000..9f19614 --- /dev/null +++ b/SOURCES/0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch @@ -0,0 +1,55 @@ +From e27b06773eaf5c0307bcc5637d7457be9be1e6ea Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Wed, 1 Dec 2021 17:11:02 +0100 +Subject: [PATCH] print_ifindex: fix IFNAME_QUOTED_SZ definition + +sizeof(IFNAMSIZ) instead of IFNAMSIZ was mistakenly used +for IFNAME_QUOTED_SZ initial definition in commit v4.23~87 +"print_ifindex: respect xlat style settings". + +* src/print_ifindex.c (IFNAME_QUOTED_SZ): Use IFNAMSIZ +instead of sizeof(IFNAMSIZ). +* NEWS: Mention it. + +Reported-by: Paulo Andrade +Suggested-by: Paulo Andrade +Fixes: v4.23~87 "print_ifindex: respect xlat style settings" +References: https://bugzilla.redhat.com/show_bug.cgi?id=2028146 +--- + NEWS | 4 ++++ + src/print_ifindex.c | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/NEWS b/NEWS +index 9bab673..a3036b8 100644 +--- a/NEWS ++++ b/NEWS +@@ -16,6 +16,12 @@ Noteworthy changes in release ?.?? (????-??-??) + PTRACE_*, RTM_*, RTPROT_*, TRAP_*, UFFD_*, UFFDIO_*, and V4L2_* constants. + * Updated lists of ioctl commands from Linux 5.13. + ++ * Bug fixes ++ * Fixed insufficient buffer size used for network interface name printing, ++ that previously led to assertions on attempts of printing interface names ++ that require quoting, for example, names longer than 4 characters in -xx ++ mode (addresses RHBZ bug #2028146). ++ + * Portability + * On powerpc and powerpc64, linux kernel >= 2.6.23 is required. + Older versions without a decent PTRACE_GETREGS support will not work. +diff --git a/src/print_ifindex.c b/src/print_ifindex.c +index ec48093..dc9d592 100644 +--- a/src/print_ifindex.c ++++ b/src/print_ifindex.c +@@ -13,7 +13,7 @@ + + # define INI_PFX "if_nametoindex(\"" + # define INI_SFX "\")" +-# define IFNAME_QUOTED_SZ (sizeof(IFNAMSIZ) * 4 + 3) ++# define IFNAME_QUOTED_SZ (IFNAMSIZ * 4 + 3) + + const char * + get_ifname(const unsigned int ifindex) +-- +2.1.4 + diff --git a/SOURCES/0168-m4-fix-st_SELINUX-check.patch b/SOURCES/0168-m4-fix-st_SELINUX-check.patch new file mode 100644 index 0000000..9c3203f --- /dev/null +++ b/SOURCES/0168-m4-fix-st_SELINUX-check.patch @@ -0,0 +1,208 @@ +From b8f375c2c8140e759122bca3e3469386d3ba5184 Mon Sep 17 00:00:00 2001 +From: "Dmitry V. Levin" +Date: Mon, 29 Nov 2021 08:00:00 +0000 +Subject: [PATCH 168/174] m4: fix st_SELINUX check + +* m4/st_selinux.m4: Make sure selinux support is enabled only if +all expected functions are provided by libselinux. + +Fixes: v5.12~49 "Implement --secontext[=full] option to display SELinux contexts" +--- + m4/st_selinux.m4 | 36 ++++++++++++++++-------------------- + 1 file changed, 16 insertions(+), 20 deletions(-) + +diff --git a/m4/st_selinux.m4 b/m4/st_selinux.m4 +index da72a48..7b24eba 100644 +--- a/m4/st_selinux.m4 ++++ b/m4/st_selinux.m4 +@@ -34,29 +34,25 @@ AS_IF([test "x$with_libselinux" != xno], + AS_IF([test "x$found_selinux_h" = xyes], + [saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $libselinux_LDFLAGS" +- AC_CHECK_LIB([selinux],[getpidcon], +- [libselinux_LIBS="-lselinux" +- enable_secontext=yes +- ], +- [if test "x$with_libselinux" != xcheck; then +- AC_MSG_FAILURE([failed to find getpidcon in libselinux]) +- fi +- ] +- ) +- AC_CHECK_LIB([selinux],[getfilecon], +- [libselinux_LIBS="-lselinux" +- enable_secontext=yes +- ], +- [if test "x$with_libselinux" != xcheck; then +- AC_MSG_FAILURE([failed to find getfilecon in libselinux]) +- fi +- ] ++ missing= ++ for func in getpidcon getfilecon; do ++ AC_CHECK_LIB([selinux], [$func], [:], ++ [missing="$missing $func"]) ++ done ++ AS_IF([test "x$missing" = x], ++ [libselinux_LIBS="-lselinux" ++ enable_secontext=yes ++ ], ++ [AS_IF([test "x$with_libselinux" != xcheck], ++ [AC_MSG_FAILURE([failed to find in libselinux:$missing])] ++ ) ++ ] + ) + LDFLAGS="$saved_LDFLAGS" + ], +- [if test "x$with_libselinux" != xcheck; then +- AC_MSG_FAILURE([failed to find selinux.h]) +- fi ++ [AS_IF([test "x$with_libselinux" != xcheck], ++ [AC_MSG_FAILURE([failed to find selinux.h])] ++ ) + ] + ) + ] +--- old/configure 2022-02-07 20:17:58.364068436 +0100 ++++ new/configure 2022-02-07 20:19:17.092067347 +0100 +@@ -18437,9 +18437,12 @@ + if test "x$found_selinux_h" = xyes; then : + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $libselinux_LDFLAGS" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpidcon in -lselinux" >&5 +-$as_echo_n "checking for getpidcon in -lselinux... " >&6; } +-if ${ac_cv_lib_selinux_getpidcon+:} false; then : ++ missing= ++ for func in getpidcon getfilecon; do ++ as_ac_Lib=`$as_echo "ac_cv_lib_selinux_$func" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $func in -lselinux" >&5 ++$as_echo_n "checking for $func in -lselinux... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +@@ -18453,101 +18456,59 @@ + #ifdef __cplusplus + extern "C" + #endif +-char getpidcon (); ++char $func (); + int + main () + { +-return getpidcon (); ++return $func (); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_selinux_getpidcon=yes ++ eval "$as_ac_Lib=yes" + else +- ac_cv_lib_selinux_getpidcon=no ++ eval "$as_ac_Lib=no" + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_getpidcon" >&5 +-$as_echo "$ac_cv_lib_selinux_getpidcon" >&6; } +-if test "x$ac_cv_lib_selinux_getpidcon" = xyes; then : +- libselinux_LIBS="-lselinux" +- enable_secontext=yes +- ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ++ : + else +- if test "x$with_libselinux" != xcheck; then +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "failed to find getpidcon in libselinux +-See \`config.log' for more details" "$LINENO" 5; } +- fi +- +- ++ missing="$missing $func" + fi + +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getfilecon in -lselinux" >&5 +-$as_echo_n "checking for getfilecon in -lselinux... " >&6; } +-if ${ac_cv_lib_selinux_getfilecon+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lselinux $LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char getfilecon (); +-int +-main () +-{ +-return getfilecon (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_selinux_getfilecon=yes +-else +- ac_cv_lib_selinux_getfilecon=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_getfilecon" >&5 +-$as_echo "$ac_cv_lib_selinux_getfilecon" >&6; } +-if test "x$ac_cv_lib_selinux_getfilecon" = xyes; then : ++ done ++ if test "x$missing" = x; then : + libselinux_LIBS="-lselinux" +- enable_secontext=yes ++ enable_secontext=yes + + else +- if test "x$with_libselinux" != xcheck; then +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++ if test "x$with_libselinux" != xcheck; then : ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "failed to find getfilecon in libselinux ++as_fn_error $? "failed to find in libselinux:$missing + See \`config.log' for more details" "$LINENO" 5; } +- fi +- + + fi + ++ ++fi + LDFLAGS="$saved_LDFLAGS" + + else +- if test "x$with_libselinux" != xcheck; then +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++ if test "x$with_libselinux" != xcheck; then : ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + as_fn_error $? "failed to find selinux.h + See \`config.log' for more details" "$LINENO" 5; } +- fi ++ ++fi + + + fi +-- +2.1.4 + diff --git a/SOURCES/0169-Implement-displaying-of-expected-context-upon-mismat.patch b/SOURCES/0169-Implement-displaying-of-expected-context-upon-mismat.patch new file mode 100644 index 0000000..c1e08db --- /dev/null +++ b/SOURCES/0169-Implement-displaying-of-expected-context-upon-mismat.patch @@ -0,0 +1,6958 @@ +From 8b07b18a44f7e0ebdb65b791d79d588dd90b70b6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Tue, 5 Oct 2021 08:36:22 +0200 +Subject: [PATCH 169/174] Implement displaying of expected context upon + mismatch + +New option to --secontext=... (also available as -e secontext=...) +- mismatch: print expected context on mismatch + +When using 'mismatch', an additional check is made on the context by +reading the context database and comparing the output after stripping +the unwanted part (e.g. stripping nothing in 'full' mode, keeping the +type only in default mode): +- if it differs, prints the expected context after printing '!!' +- if not, don't print anything + +Example with /home/rmetrich/GIT/strace/autom4te.cache/output.3 file: + +---- +$ matchpathcon /home/rmetrich/GIT/strace/autom4te.cache/output.3 +/home/rmetrich/GIT/strace/autom4te.cache/output.3 unconfined_u:object_r:user_home_t:s0 + +$ ls -Z /home/rmetrich/GIT/strace/autom4te.cache/output.3 +system_u:object_r:user_home_t:s0 /home/rmetrich/GIT/strace/autom4te.cache/output.3 +---- + +From above, we see the user part differs ('unconfined_u' vs 'system_u') + +Output in '!full' mode (no diff found on type): + +---- +$ strace --secontext=mismatch -e statx stat /home/rmetrich/GIT/strace/autom4te.cache/output.3 +... statx(AT_FDCWD, "/home/rmetrich/GIT/strace/autom4te.cache/output.3" [user_home_t], ... +---- + +Output in 'full' mode (diff found on user): + +---- +... statx(AT_FDCWD, "/home/rmetrich/GIT/strace/autom4te.cache/output.3" [system_u:object_r:user_home_t:s0!!unconfined_u:object_r:user_home_t:s0], ... +---- + +* NEWS: Mention this change. +* doc/strace.1.in: Document it. +* m4/st_selinux.m4 (st_SELINUX): Check for selabel_open +and selabel_lookup. +* src/filter_qualify.c [ENABLE_SECONTEXT]: Include "secontext.h". +[ENABLE_SECONTEXT] (secontext_set): New variable. +[ENABLE_SECONTEXT] (secontextstr_to_uint, qualify_secontext): New +functions. +(qual_options) [ENABLE_SECONTEXT]: Add "secontext". +* src/secontext.c: Include , , , +"largefile_wrappers.h", "number_set.h", and "xmalloc.h". +(selinux_context, selinux_context_full): Remove. +(getcontext): Use is_number_in_set instead of selinux_context_full. +(selinux_getpidcon): Use is_number_in_set instead of selinux_context. +(get_expected_filecontext): New function. +(selinux_getfdcon, selinux_getfilecon): Use it to print context mismatch +if SECONTEXT_MISMATCH is set in secontext_set. +* src/secontext.h (selinux_context, selinux_context_full): Remove. +(secontext_bits): New enum. +(secontext_set, qualify_secontext, selinux_set_format): New +declarations. +* src/strace.c (SECONTEXT_E_QUAL): New macro. +(usage): Use it, describe --secontext. +(init) [ENABLE_SECONTEXT]: Call qualify_secontext, rename +GETOPT_SECONTEXT to GETOPT_QUAL_SECONTEXT, use is_number_in_set +instead of selinux_context. +(init) [ENABLE_SECONTEXT] (secontext_qual): New variable. +(init) [ENABLE_SECONTEXT] : Use it. +* tests/.gitignore: Add *--secontext_full_mismatch, +*--secontext_full_mismatch.c, *--secontext_mismatch, and +*--secontext_mismatch.c. +* tests/gen_secontext.sh: Generate *--secontext_full_mismatch.c +and *--secontext_mismatch.c. +* tests/gen_tests.in (access--secontext_full_mismatch, +access--secontext_mismatch, chmod--secontext_full_mismatch, +chmod--secontext_mismatch, execve--secontext_full_mismatch, +execve--secontext_mismatch, execveat--secontext_full_mismatch, +execveat--secontext_mismatch, faccessat--secontext_full_mismatch, +faccessat--secontext_mismatch, faccessat-y--secontext_full_mismatch, +faccessat-y--secontext_mismatch, fanotify_mark--secontext_full_mismatch, +fanotify_mark--secontext_mismatch, fchmod--secontext_full_mismatch, +fchmod--secontext_mismatch, fchmod-y--secontext_full_mismatch, +fchmod-y--secontext_mismatch, fchmodat--secontext_full_mismatch, +fchmodat--secontext_mismatch, fchownat--secontext_full_mismatch, +fchownat--secontext_mismatch, file_handle--secontext_full_mismatch, +file_handle--secontext_mismatch, linkat--secontext_full_mismatch, +linkat--secontext_mismatch, open--secontext_full_mismatch, +open--secontext_mismatch, openat--secontext_full_mismatch, +openat--secontext_mismatch): New tests. +* tests/linkat.c: Include . +(main) [PRINT_SECONTEXT_MISMATCH]: Check context mismatch. +* tests/options-syntax.test: Check --secontext and -e secontext syntax. +* tests/secontext.h (secontext_field): New enum. +(secontext_full_file, secontext_short_file): Add "mismatch" argument. +(update_secontext_type): Rename to update_secontext_field, add "field" +argument. +(SECONTEXT_FILE): Conditionalize "mismatch" argument passed to +secontext_full_file and secontext_short_file on +PRINT_SECONTEXT_MISMATCH. +* tests/secontext.c: Include and . +(get_type_from_context, raw_expected_secontext_full_file, +raw_expected_secontext_short_file): New functions. +(raw_secontext_short_file, raw_secontext_short_pid): Use +get_type_from_context. +(secontext_full_file): Add "mismatch" argument, use +raw_expected_secontext_full_file if mismatch is enabled. +(secontext_short_file): Add "mismatch" argument, use +raw_expected_secontext_short_file if mismatch is enabled. +(update_secontext_type): Rename to update_secontext_field, add "field" +argument. + +Co-authored-by: Dmitry V. Levin + +Conflicts: + NEWS + doc/strace.1.in + src/filter_qualify.c + src/strace.c +--- + NEWS | 2 + + doc/strace.1.in | 33 +++++++-- + m4/st_selinux.m4 | 2 +- + src/filter_qualify.c | 29 ++++++++ + src/secontext.c | 114 ++++++++++++++++++++++++++---- + src/secontext.h | 15 +++- + src/strace.c | 49 ++++++++----- + tests/.gitignore | 4 ++ + tests/gen_secontext.sh | 12 +++- + tests/gen_tests.in | 34 ++++++++- + tests/linkat.c | 46 +++++++++++- + tests/options-syntax.test | 14 +++- + tests/secontext.c | 176 ++++++++++++++++++++++++++++++++-------------- + tests/secontext.h | 28 ++++++-- + 14 files changed, 453 insertions(+), 105 deletions(-) + +diff --git a/NEWS b/NEWS +index 969ed11..f7542ea 100644 +--- a/NEWS ++++ b/NEWS +@@ -2,6 +2,8 @@ Noteworthy changes in release 5.13 (2021-07-18) + =============================================== + + * Improvements ++ * Implemented --secontext=mismatch option to find mismatches in SELinux ++ contexts. + * Print netlink data in a more structured way. + * Implemented decoding of NT_PRSTATUS and NT_FPREGSET regsets + of PTRACE_GETREGSET and PTRACE_SETREGSET requests. +diff --git a/doc/strace.1.in b/doc/strace.1.in +index 003e9e5..439243b 100644 +--- a/doc/strace.1.in ++++ b/doc/strace.1.in +@@ -53,7 +53,7 @@ strace \- trace system calls and signals + .OM \-P path + .OM \-p pid + .OP \-\-seccomp\-bpf +-.if '@ENABLE_SECONTEXT_FALSE@'#' .OP \-\-secontext\fR[=full] ++.if '@ENABLE_SECONTEXT_FALSE@'#' .OP \-\-secontext\fR[=\fIformat\fR] + .BR "" { + .OR \-p pid + .BR "" | +@@ -259,6 +259,7 @@ is one of + .BR inject , + .BR status , + .BR quiet " (or " silent " or " silence " or " q ), ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR secontext , + .BR decode\-fds " (or " decode\-fd ), + or + .BR kvm , +@@ -1086,13 +1087,33 @@ and PIDs associated with pidfd file descriptors. + If strace and tracee are in different PID namespaces, print PIDs in + strace's namespace, too. + .if '@ENABLE_SECONTEXT_FALSE@'#' .TP +-.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-\-secontext "[=full]" ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-\-secontext\fR[=\fIformat\fR] ++.if '@ENABLE_SECONTEXT_FALSE@'#' .TQ ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-e\ secontext\fR=\fIformat\fR + .if '@ENABLE_SECONTEXT_FALSE@'#' When SELinux is available and is not disabled, + .if '@ENABLE_SECONTEXT_FALSE@'#' print in square brackets SELinux contexts of +-.if '@ENABLE_SECONTEXT_FALSE@'#' processes, files, and descriptors. When +-.if '@ENABLE_SECONTEXT_FALSE@'#' .B full +-.if '@ENABLE_SECONTEXT_FALSE@'#' is specified, print the complete context (user, +-.if '@ENABLE_SECONTEXT_FALSE@'#' role, type and category) instead of just the type. ++.if '@ENABLE_SECONTEXT_FALSE@'#' processes, files, and descriptors. The ++.if '@ENABLE_SECONTEXT_FALSE@'#' .I format ++.if '@ENABLE_SECONTEXT_FALSE@'#' argument is a comma-separated list of items ++.if '@ENABLE_SECONTEXT_FALSE@'#' being one of the following: ++.if '@ENABLE_SECONTEXT_FALSE@'#' .RS ++.if '@ENABLE_SECONTEXT_FALSE@'#' .TP 18 ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR full ++.if '@ENABLE_SECONTEXT_FALSE@'#' Print the full context (user, role, type level ++.if '@ENABLE_SECONTEXT_FALSE@'#' and category). ++.if '@ENABLE_SECONTEXT_FALSE@'#' .TQ ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR mismatch ++.if '@ENABLE_SECONTEXT_FALSE@'#' Also print the context recorded by the SELinux ++.if '@ENABLE_SECONTEXT_FALSE@'#' database in case the current context differs. ++.if '@ENABLE_SECONTEXT_FALSE@'#' The latter is printed after two exclamation marks (!!). ++.if '@ENABLE_SECONTEXT_FALSE@'#' .RE ++.if '@ENABLE_SECONTEXT_FALSE@'#' .IP ++.if '@ENABLE_SECONTEXT_FALSE@'#' The default value for ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-\-secontext ++.if '@ENABLE_SECONTEXT_FALSE@'#' is ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR !full,mismatch ++.if '@ENABLE_SECONTEXT_FALSE@'#' which prints only the type instead of full context ++.if '@ENABLE_SECONTEXT_FALSE@'#' and doesn't check for context mismatches. + .SS Statistics + .TP 12 + .B \-c +diff --git a/m4/st_selinux.m4 b/m4/st_selinux.m4 +index 7b24eba..60e23a9 100644 +--- a/m4/st_selinux.m4 ++++ b/m4/st_selinux.m4 +@@ -35,7 +35,7 @@ AS_IF([test "x$with_libselinux" != xno], + [saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $libselinux_LDFLAGS" + missing= +- for func in getpidcon getfilecon; do ++ for func in getpidcon getfilecon selabel_open selabel_lookup; do + AC_CHECK_LIB([selinux], [$func], [:], + [missing="$missing $func"]) + done +diff --git a/src/filter_qualify.c b/src/filter_qualify.c +index df05496..a5b4fe7 100644 +--- a/src/filter_qualify.c ++++ b/src/filter_qualify.c +@@ -14,6 +14,9 @@ + #include "poke.h" + #include "retval.h" + #include "static_assert.h" ++#ifdef ENABLE_SECONTEXT ++# include "secontext.h" ++#endif + + struct number_set *read_set; + struct number_set *write_set; +@@ -591,6 +594,29 @@ qualify_kvm(const char *const str) + } + } + ++#ifdef ENABLE_SECONTEXT ++struct number_set *secontext_set; ++ ++static int ++secontextstr_to_uint(const char *s) ++{ ++ static const struct xlat_data secontext_strs[] = { ++ { SECONTEXT_FULL, "full" }, ++ { SECONTEXT_MISMATCH, "mismatch" }, ++ }; ++ ++ return (int) find_arg_val(s, secontext_strs, -1ULL, -1ULL); ++} ++ ++void ++qualify_secontext(const char *const str) ++{ ++ if (!secontext_set) ++ secontext_set = alloc_number_set_array(1); ++ qualify_tokens(str, secontext_set, secontextstr_to_uint, "secontext"); ++} ++#endif ++ + static const struct qual_options { + const char *name; + void (*qualify)(const char *); +@@ -622,6 +648,9 @@ static const struct qual_options { + { "kvm", qualify_kvm }, + { "decode-fd", qualify_decode_fd }, + { "decode-fds", qualify_decode_fd }, ++#ifdef ENABLE_SECONTEXT ++ { "secontext", qualify_secontext }, ++#endif + }; + + void +diff --git a/src/secontext.c b/src/secontext.c +index ccf9b34..9a91386 100644 +--- a/src/secontext.c ++++ b/src/secontext.c +@@ -10,14 +10,17 @@ + #include + #include + #include ++#include ++#include + #include ++#include + ++#include "largefile_wrappers.h" ++#include "number_set.h" + #include "secontext.h" ++#include "xmalloc.h" + #include "xstring.h" + +-bool selinux_context = false; +-bool selinux_context_full = false; +- + static int + getcontext(int rc, char **secontext, char **result) + { +@@ -25,7 +28,7 @@ getcontext(int rc, char **secontext, char **result) + return rc; + + *result = NULL; +- if (!selinux_context_full) { ++ if (!is_number_in_set(SECONTEXT_FULL, secontext_set)) { + char *saveptr = NULL; + char *secontext_copy = xstrdup(*secontext); + const char *token; +@@ -59,6 +62,36 @@ getcontext(int rc, char **secontext, char **result) + freecon(*secontext); + return 0; + } ++ ++static int ++get_expected_filecontext(const char *path, char **result) ++{ ++ static struct selabel_handle *hdl; ++ ++ if (!hdl) { ++ static bool disabled; ++ if (disabled) ++ return -1; ++ ++ hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0); ++ if (!hdl) { ++ perror_msg("could not open SELinux database, disabling " ++ "context mismatch checking"); ++ disabled = true; ++ return -1; ++ } ++ } ++ ++ strace_stat_t stb; ++ if (stat_file(path, &stb) < 0) { ++ return -1; ++ } ++ ++ char *secontext; ++ return getcontext(selabel_lookup(hdl, &secontext, path, stb.st_mode), ++ &secontext, result); ++} ++ + /* + * Retrieves the SELinux context of the given PID (extracted from the tcb). + * Memory must be freed. +@@ -67,7 +100,7 @@ getcontext(int rc, char **secontext, char **result) + int + selinux_getpidcon(struct tcb *tcp, char **result) + { +- if (!selinux_context) ++ if (number_set_array_is_empty(secontext_set, 0)) + return -1; + + int proc_pid = 0; +@@ -87,7 +120,7 @@ selinux_getpidcon(struct tcb *tcp, char **result) + int + selinux_getfdcon(pid_t pid, int fd, char **result) + { +- if (!selinux_context || pid <= 0 || fd < 0) ++ if (number_set_array_is_empty(secontext_set, 0) || pid <= 0 || fd < 0) + return -1; + + int proc_pid = 0; +@@ -99,7 +132,33 @@ selinux_getfdcon(pid_t pid, int fd, char **result) + xsprintf(linkpath, "/proc/%u/fd/%u", proc_pid, fd); + + char *secontext; +- return getcontext(getfilecon(linkpath, &secontext), &secontext, result); ++ int rc = getcontext(getfilecon(linkpath, &secontext), &secontext, result); ++ if (rc < 0 || !is_number_in_set(SECONTEXT_MISMATCH, secontext_set)) ++ return rc; ++ ++ /* ++ * We need to resolve the path, because selabel_lookup() doesn't ++ * resolve anything. Using readlink() is sufficient here. ++ */ ++ ++ char buf[PATH_MAX]; ++ ssize_t n = readlink(linkpath, buf, sizeof(buf)); ++ if ((size_t) n >= sizeof(buf)) ++ return 0; ++ buf[n] = '\0'; ++ ++ char *expected; ++ if (get_expected_filecontext(buf, &expected) < 0) ++ return 0; ++ if (strcmp(expected, *result) == 0) { ++ free(expected); ++ return 0; ++ } ++ char *final_result = xasprintf("%s!!%s", *result, expected); ++ free(expected); ++ free(*result); ++ *result = final_result; ++ return 0; + } + + /* +@@ -110,7 +169,7 @@ selinux_getfdcon(pid_t pid, int fd, char **result) + int + selinux_getfilecon(struct tcb *tcp, const char *path, char **result) + { +- if (!selinux_context) ++ if (number_set_array_is_empty(secontext_set, 0)) + return -1; + + int proc_pid = 0; +@@ -118,22 +177,49 @@ selinux_getfilecon(struct tcb *tcp, const char *path, char **result) + if (!proc_pid) + return -1; + +- int ret = -1; ++ int rc = -1; + char fname[PATH_MAX]; + + if (path[0] == '/') +- ret = snprintf(fname, sizeof(fname), "/proc/%u/root%s", ++ rc = snprintf(fname, sizeof(fname), "/proc/%u/root%s", + proc_pid, path); + else if (tcp->last_dirfd == AT_FDCWD) +- ret = snprintf(fname, sizeof(fname), "/proc/%u/cwd/%s", ++ rc = snprintf(fname, sizeof(fname), "/proc/%u/cwd/%s", + proc_pid, path); + else if (tcp->last_dirfd >= 0 ) +- ret = snprintf(fname, sizeof(fname), "/proc/%u/fd/%u/%s", ++ rc = snprintf(fname, sizeof(fname), "/proc/%u/fd/%u/%s", + proc_pid, tcp->last_dirfd, path); + +- if ((unsigned int) ret >= sizeof(fname)) ++ if ((unsigned int) rc >= sizeof(fname)) + return -1; + + char *secontext; +- return getcontext(getfilecon(fname, &secontext), &secontext, result); ++ rc = getcontext(getfilecon(fname, &secontext), &secontext, result); ++ if (rc < 0 || !is_number_in_set(SECONTEXT_MISMATCH, secontext_set)) ++ return rc; ++ ++ /* ++ * We need to fully resolve the path, because selabel_lookup() doesn't ++ * resolve anything. Using realpath() is the only solution here to make ++ * sure the path is canonicalized. ++ */ ++ ++ char *resolved = realpath(fname, NULL); ++ if (!resolved) ++ return 0; ++ ++ char *expected; ++ rc = get_expected_filecontext(resolved, &expected); ++ free(resolved); ++ if (rc < 0) ++ return 0; ++ if (strcmp(expected, *result) == 0) { ++ free(expected); ++ return 0; ++ } ++ char *final_result = xasprintf("%s!!%s", *result, expected); ++ free(expected); ++ free(*result); ++ *result = final_result; ++ return 0; + } +diff --git a/src/secontext.h b/src/secontext.h +index 1ed88c7..39222d0 100644 +--- a/src/secontext.h ++++ b/src/secontext.h +@@ -11,11 +11,22 @@ + + # include "defs.h" + +-extern bool selinux_context; +-extern bool selinux_context_full; ++void qualify_secontext(const char *const str); ++ ++enum secontext_bits { ++ /* Display full context instead of type only */ ++ SECONTEXT_FULL, ++ /* Check for context mismatch */ ++ SECONTEXT_MISMATCH, ++ ++ NUMBER_OF_SECONTEXT_BITS ++}; ++ ++extern struct number_set *secontext_set; + + int selinux_getfdcon(pid_t pid, int fd, char **context); + int selinux_getfilecon(struct tcb *tcp, const char *path, char **context); + int selinux_getpidcon(struct tcb *tcp, char **context); ++void selinux_set_format(const char *optarg); + + #endif /* !STRACE_SECONTEXT_H */ +diff --git a/src/strace.c b/src/strace.c +index fb42fe9..0a18478 100644 +--- a/src/strace.c ++++ b/src/strace.c +@@ -264,9 +264,11 @@ usage(void) + # define K_OPT "" + #endif + #ifdef ENABLE_SECONTEXT +-# define SECONTEXT_OPT "[--secontext[=full]]\n" ++# define SECONTEXT_OPT " [--secontext[=FORMAT]]\n" ++# define SECONTEXT_E_QUAL ", secontext" + #else + # define SECONTEXT_OPT "" ++# define SECONTEXT_E_QUAL "" + #endif + + printf("\ +@@ -282,7 +284,7 @@ Usage: strace [-ACdffhi" K_OPT "qqrtttTvVwxxyyzZ] [-I N] [-b execve] [-e EXPR].. + General:\n\ + -e EXPR a qualifying expression: OPTION=[!]all or OPTION=[!]VAL1[,VAL2]...\n\ + options: trace, abbrev, verbose, raw, signal, read, write, fault,\n\ +- inject, status, quiet, kvm, decode-fds\n\ ++ inject, status, quiet, kvm, decode-fds" SECONTEXT_E_QUAL "\n\ + \n\ + Startup:\n\ + -E VAR=VAL, --env=VAR=VAL\n\ +@@ -358,6 +360,19 @@ Output format:\n\ + path (file path),\n\ + pidfd (associated PID for pidfds),\n\ + socket (protocol-specific information for socket descriptors)\n\ ++" ++#ifdef ENABLE_SECONTEXT ++"\ ++ -e secontext=FORMAT, --secontext[=FORMAT]\n\ ++ print SELinux contexts in square brackets\n\ ++ formats: comma-separated list of all, full, mismatch, none\n\ ++ all: equivalent to full,mismatch\n\ ++ full: print the full context instead of the type only\n\ ++ mismatch: print expected context when actual is not matching\n\ ++ none: equivalent to not specifying the option at all\n\ ++" ++#endif ++"\ + -i, --instruction-pointer\n\ + print instruction pointer at time of syscall\n\ + " +@@ -1991,6 +2006,9 @@ init(int argc, char *argv[]) + static const char tflag_str[] = "format:time"; + static const char ttflag_str[] = "precision:us,format:time"; + static const char tttflag_str[] = "format:unix,precision:us"; ++#ifdef ENABLE_SECONTEXT ++ static const char secontext_qual[] = "!full,mismatch"; ++#endif + + int c, i; + int optF = 0, zflags = 0; +@@ -2054,6 +2072,9 @@ init(int argc, char *argv[]) + qualify_quiet("none"); + qualify_decode_fd("none"); + qualify_signals("all"); ++#ifdef ENABLE_SECONTEXT ++ qualify_secontext("none"); ++#endif + + static const char optstring[] = + "+a:Ab:cCdDe:E:fFhiI:kno:O:p:P:qrs:S:tTu:U:vVwxX:yzZ"; +@@ -2066,9 +2087,6 @@ init(int argc, char *argv[]) + GETOPT_OUTPUT_SEPARATELY, + GETOPT_TS, + GETOPT_PIDNS_TRANSLATION, +-#ifdef ENABLE_SECONTEXT +- GETOPT_SECONTEXT, +-#endif + + GETOPT_QUAL_TRACE, + GETOPT_QUAL_ABBREV, +@@ -2083,6 +2101,9 @@ init(int argc, char *argv[]) + GETOPT_QUAL_KVM, + GETOPT_QUAL_QUIET, + GETOPT_QUAL_DECODE_FD, ++#ifdef ENABLE_SECONTEXT ++ GETOPT_QUAL_SECONTEXT, ++#endif + }; + static const struct option longopts[] = { + { "columns", required_argument, 0, 'a' }, +@@ -2125,9 +2146,6 @@ init(int argc, char *argv[]) + { "failed-only", no_argument, 0, 'Z' }, + { "failing-only", no_argument, 0, 'Z' }, + { "seccomp-bpf", no_argument, 0, GETOPT_SECCOMP }, +-#ifdef ENABLE_SECONTEXT +- { "secontext", optional_argument, 0, GETOPT_SECONTEXT }, +-#endif + + { "trace", required_argument, 0, GETOPT_QUAL_TRACE }, + { "abbrev", required_argument, 0, GETOPT_QUAL_ABBREV }, +@@ -2144,6 +2162,9 @@ init(int argc, char *argv[]) + { "silent", optional_argument, 0, GETOPT_QUAL_QUIET }, + { "silence", optional_argument, 0, GETOPT_QUAL_QUIET }, + { "decode-fds", optional_argument, 0, GETOPT_QUAL_DECODE_FD }, ++#ifdef ENABLE_SECONTEXT ++ { "secontext", optional_argument, 0, GETOPT_QUAL_SECONTEXT }, ++#endif + + { 0, 0, 0, 0 } + }; +@@ -2357,14 +2378,8 @@ init(int argc, char *argv[]) + seccomp_filtering = true; + break; + #ifdef ENABLE_SECONTEXT +- case GETOPT_SECONTEXT: +- selinux_context = true; +- if (optarg) { +- if (!strcmp(optarg, "full")) +- selinux_context_full = true; +- else +- error_opt_arg(c, lopt, optarg); +- } ++ case GETOPT_QUAL_SECONTEXT: ++ qualify_secontext(optarg ? optarg : secontext_qual); + break; + #endif + case GETOPT_QUAL_TRACE: +@@ -2550,7 +2565,7 @@ init(int argc, char *argv[]) + error_msg("-y/--decode-fds has no effect " + "with -c/--summary-only"); + #ifdef ENABLE_SECONTEXT +- if (selinux_context) ++ if (!number_set_array_is_empty(secontext_set, 0)) + error_msg("--secontext has no effect with " + "-c/--summary-only"); + #endif +diff --git a/tests/gen_tests.in b/tests/gen_tests.in +index 8b4e2e9..71e2f17 100644 +--- a/tests/gen_tests.in ++++ b/tests/gen_tests.in +@@ -12,6 +12,8 @@ accept4 -a37 + access -a30 --trace-path=access_sample + access--secontext -a30 --secontext --trace-path=access_sample -e trace=access + access--secontext_full -a30 --secontext=full --trace-path=access_sample -e trace=access ++access--secontext_full_mismatch -a30 --secontext=full,mismatch --trace-path=access_sample -e trace=access ++access--secontext_mismatch -a30 --secontext=mismatch --trace-path=access_sample -e trace=access + acct -a20 + add_key -a30 -s12 + adjtimex -a15 +@@ -27,8 +29,10 @@ bpf-v -a20 -v -e trace=bpf + btrfs +ioctl.test + chdir -a10 + chmod -a28 +-chmod--secontext -a28 --secontext -e trace=chmod +-chmod--secontext_full -a28 --secontext=full -e trace=chmod ++chmod--secontext -a28 -e secontext=!full,mismatch -e trace=chmod ++chmod--secontext_full -a28 -e secontext=full -e trace=chmod ++chmod--secontext_full_mismatch -a28 --secontext=mismatch,full -e trace=chmod ++chmod--secontext_mismatch -a28 --secontext=mismatch -e trace=chmod + chown -a28 + chown32 -a31 + chroot -a13 +@@ -84,16 +88,24 @@ epoll_wait -a26 + erestartsys -a34 -e signal=none -e trace=recvfrom + execve--secontext +execve.test --secontext + execve--secontext_full +execve.test --secontext=full ++execve--secontext_full_mismatch +execve.test --secontext=full,mismatch ++execve--secontext_mismatch +execve.test --secontext=mismatch + execveat + execveat--secontext --secontext --trace=execveat + execveat--secontext_full --secontext=full --trace=execveat ++execveat--secontext_full_mismatch --secontext=full,mismatch --trace=execveat ++execveat--secontext_mismatch --secontext=mismatch --trace=execveat + execveat-v -v -e trace=execveat + faccessat--secontext +faccessat.test -a24 --secontext + faccessat--secontext_full +faccessat.test -a24 --secontext=full ++faccessat--secontext_full_mismatch +faccessat.test -a24 --secontext=full,mismatch ++faccessat--secontext_mismatch +faccessat.test -a24 --secontext=mismatch + faccessat-P -a23 --trace=faccessat -P /dev/full + faccessat-y +faccessat.test -a24 -y + faccessat-y--secontext +faccessat.test -a24 -y --secontext + faccessat-y--secontext_full +faccessat.test -a24 -y --secontext=full ++faccessat-y--secontext_full_mismatch +faccessat.test -a24 -y --secontext=full,mismatch ++faccessat-y--secontext_mismatch +faccessat.test -a24 -y --secontext=mismatch + faccessat-yy +faccessat.test -a24 -yy + faccessat2-P -a27 --trace=faccessat2 -P /dev/full + faccessat2-y +faccessat2.test -a28 -y +@@ -104,6 +116,8 @@ fanotify_init + fanotify_mark -a32 + fanotify_mark--secontext -a32 --secontext -e trace=fanotify_mark + fanotify_mark--secontext_full -a32 --secontext=full -e trace=fanotify_mark ++fanotify_mark--secontext_full_mismatch -a32 --secontext=full,mismatch -e trace=fanotify_mark ++fanotify_mark--secontext_mismatch -a32 --secontext=mismatch -e trace=fanotify_mark + fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark + fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark + fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark +@@ -111,17 +125,25 @@ fchdir -a11 + fchmod -a15 + fchmod--secontext -a15 --secontext -e trace=fchmod + fchmod--secontext_full -a15 --secontext=full -e trace=fchmod ++fchmod--secontext_full_mismatch -a15 --secontext=full,mismatch -e trace=fchmod ++fchmod--secontext_mismatch -a15 --secontext=mismatch -e trace=fchmod + fchmod-y -y -e trace=fchmod + fchmod-y--secontext -a15 -y --secontext -e trace=fchmod + fchmod-y--secontext_full -a15 -y --secontext=full -e trace=fchmod ++fchmod-y--secontext_full_mismatch -a15 -y --secontext=full,mismatch -e trace=fchmod ++fchmod-y--secontext_mismatch -a15 -y --secontext=mismatch -e trace=fchmod + fchmodat + fchmodat--secontext --secontext -e trace=fchmodat + fchmodat--secontext_full --secontext=full -e trace=fchmodat ++fchmodat--secontext_full_mismatch --secontext=full,mismatch -e trace=fchmodat ++fchmodat--secontext_mismatch --secontext=mismatch -e trace=fchmodat + fchown -a16 + fchown32 -a18 + fchownat + fchownat--secontext --secontext -e trace=fchownat + fchownat--secontext_full --secontext=full -e trace=fchownat ++fchownat--secontext_full_mismatch -e secontext=full,mismatch -e trace=fchownat ++fchownat--secontext_mismatch -e secontext=mismatch -e trace=fchownat + fcntl -a8 + fcntl--pidns-translation test_pidns -a8 -e trace=fcntl + fcntl64 -a8 +@@ -130,6 +152,8 @@ fdatasync -a14 + file_handle -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext --secontext -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext_full --secontext=full -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_full_mismatch --secontext=full,mismatch -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_mismatch --secontext=mismatch -e trace=name_to_handle_at,open_by_handle_at + filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f + filter_seccomp-flag ../$NAME + finit_module -a25 +@@ -383,6 +407,8 @@ link + linkat + linkat--secontext --secontext -e trace=linkat + linkat--secontext_full --secontext=full -e trace=linkat ++linkat--secontext_full_mismatch --secontext=full,mismatch -e trace=linkat ++linkat--secontext_mismatch --secontext=mismatch -e trace=linkat + lookup_dcookie -a27 + lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full + lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +@@ -526,11 +552,15 @@ oldstat -a32 -v -P stat.sample -P /dev/full + open -a30 -P $NAME.sample + open--secontext -a30 -P open.sample --secontext --trace=open + open--secontext_full -a30 -P open.sample --secontext=full --trace=open ++open--secontext_full_mismatch -a30 -P open.sample --secontext=full,mismatch --trace=open ++open--secontext_mismatch -a30 -P open.sample --secontext=mismatch --trace=open + open_tree -a30 -y + open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree + openat -a36 -P $NAME.sample + openat--secontext -a36 -P openat.sample -P $PWD/openat.sample --secontext -e trace=openat + openat--secontext_full -a36 -P openat.sample -P $PWD/openat.sample --secontext=full -e trace=openat ++openat--secontext_full_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=full,mismatch -e trace=openat ++openat--secontext_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=mismatch -e trace=openat + openat2 -a35 + openat2-Xabbrev --trace=openat2 -a35 -Xabbrev + openat2-Xraw --trace=openat2 -a32 -Xraw +diff --git a/tests/linkat.c b/tests/linkat.c +index 1d41d3d..1a869e3 100644 +--- a/tests/linkat.c ++++ b/tests/linkat.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + + #include "secontext.h" + #include "xmalloc.h" +@@ -88,10 +89,42 @@ main(void) + perror_msg_and_fail("close"); + + free(sample_1_secontext); +- update_secontext_type(sample_1, "default_t"); ++ ++#ifdef PRINT_SECONTEXT_MISMATCH ++ update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ sample_1_secontext = SECONTEXT_FILE(sample_1); ++ ++# ifdef PRINT_SECONTEXT_FULL ++ /* The mismatch should be detected */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "system_u") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++# else ++ /* The mismatch cannot be detected since it's on user part */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") != NULL) ++ perror_msg_and_fail("Context mismatch detected: %s", ++ sample_1_secontext); ++# endif ++ ++ free(sample_1_secontext); ++#endif ++ ++ update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++#endif ++ + rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, 0); + printf("%s%s(AT_FDCWD, \"%s\"%s, AT_FDCWD, \"%s\"%s, 0) = %s\n", + my_secontext, "linkat", +@@ -108,8 +141,19 @@ main(void) + + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); ++ ++ update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++#endif ++ + rc = syscall(__NR_linkat, dfd_old, sample_1, -100, sample_2, 0); + /* no context printed for sample_2 since file doesn't exist yet */ + printf("%s%s(%d%s, \"%s\"%s, AT_FDCWD, \"%s\", 0) = %s\n", +diff --git a/tests/options-syntax.test b/tests/options-syntax.test +index 765b2f8..848d297 100755 +--- a/tests/options-syntax.test ++++ b/tests/options-syntax.test +@@ -48,8 +48,18 @@ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --ti + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$ +-[ -z "$compiled_with_secontext" ] || +- check_h "invalid --secontext argument: 'ss'" --secontext=ss ++if [ -n "$compiled_with_secontext" ]; then ++ for opt in '--secontext' '-e secontext'; do ++ check_e "invalid secontext ''" $opt= ++ check_e "invalid secontext 'ss'" $opt=ss ++ check_e "invalid secontext 'ss'" $opt=ss,full,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss ++ check_e "invalid secontext 'ss'" $opt=full,mismatch,ss ++ check_e "invalid secontext 'ss'" $opt=!full,ss ++ check_e "invalid secontext 'ss'" $opt=!full,mismatch,ss ++ done ++fi + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$ +diff --git a/tests/secontext.c b/tests/secontext.c +index 21c6370..848eea9 100644 +--- a/tests/secontext.c ++++ b/tests/secontext.c +@@ -13,8 +13,10 @@ + # include + # include + # include ++# include + # include + # include ++# include + + # include "xmalloc.h" + +@@ -55,6 +57,79 @@ strip_trailing_newlines(char *context) + } + + static char * ++get_type_from_context(const char *full_context) ++{ ++ int saved_errno = errno; ++ ++ if (!full_context) ++ return NULL; ++ ++ char *saveptr = NULL; ++ const char *token; ++ unsigned int i; ++ ++ char *ctx_copy = xstrdup(full_context); ++ char *context = NULL; ++ for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), i++) { ++ if (i == 2) { ++ context = xstrdup(token); ++ break; ++ } ++ } ++ if (!context) ++ context = xstrdup(full_context); ++ free(ctx_copy); ++ ++ errno = saved_errno; ++ return context; ++} ++ ++static char * ++raw_expected_secontext_full_file(const char *filename) ++{ ++ int saved_errno = errno; ++ char *secontext; ++ ++ static struct selabel_handle *hdl; ++ if (!hdl) { ++ hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0); ++ if (!hdl) ++ perror_msg_and_skip("selabel_open"); ++ } ++ ++ char *resolved = realpath(filename, NULL); ++ if (!resolved) ++ perror_msg_and_fail("realpath: %s", filename); ++ ++ struct stat statbuf; ++ if (stat(resolved, &statbuf) < 0) ++ perror_msg_and_fail("stat: %s", resolved); ++ ++ if (selabel_lookup(hdl, &secontext, resolved, statbuf.st_mode) < 0) ++ perror_msg_and_skip("selabel_lookup: %s", resolved); ++ free(resolved); ++ ++ char *full_secontext = xstrdup(secontext); ++ freecon(secontext); ++ errno = saved_errno; ++ return full_secontext; ++} ++ ++static char * ++raw_expected_secontext_short_file(const char *filename) ++{ ++ int saved_errno = errno; ++ ++ char *ctx = raw_expected_secontext_full_file(filename); ++ char *type = get_type_from_context(ctx); ++ free(ctx); ++ ++ errno = saved_errno; ++ return type; ++} ++ ++static char * + raw_secontext_full_file(const char *filename) + { + int saved_errno = errno; +@@ -75,29 +150,11 @@ raw_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_secontext_full_file(filename); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- unsigned int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + static char * +@@ -121,35 +178,30 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + char * +-secontext_full_file(const char *filename) ++secontext_full_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_full_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_full_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_full_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -159,9 +211,22 @@ secontext_full_pid(pid_t pid) + } + + char * +-secontext_short_file(const char *filename) ++secontext_short_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_short_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_short_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_short_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -171,31 +236,38 @@ secontext_short_pid(pid_t pid) + } + + void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { ++ int saved_errno = errno; ++ assert(field >= SECONTEXT_USER && field <= SECONTEXT_TYPE); ++ + char *ctx = raw_secontext_full_file(file); + if (ctx == NULL) + return; + + char *saveptr = NULL; + char *token; +- int field; ++ int nfields; + char *split[4]; + +- for (token = strtok_r(ctx, ":", &saveptr), field = 0; +- token; token = strtok_r(NULL, ":", &saveptr), field++) { +- assert(field < 4); +- split[field] = token; ++ for (token = strtok_r(ctx, ":", &saveptr), nfields = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), nfields++) { ++ assert(nfields < 4); ++ split[nfields] = token; + } +- assert(field == 4); ++ assert(nfields == 4); ++ ++ split[field] = (char *)newvalue; + + char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1], +- newtype, split[3]); ++ split[2], split[3]); + + (void) setfilecon(file, newcontext); + + free(newcontext); + free(ctx); ++ errno = saved_errno; + } + + #endif /* HAVE_SELINUX_RUNTIME */ +diff --git a/tests/secontext.h b/tests/secontext.h +index c65f53a..1d0251a 100644 +--- a/tests/secontext.h ++++ b/tests/secontext.h +@@ -9,24 +9,39 @@ + #include "xmalloc.h" + #include + +-char *secontext_full_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC; + +-char *secontext_short_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC; + ++enum secontext_field { ++ SECONTEXT_USER, ++ SECONTEXT_ROLE, ++ SECONTEXT_TYPE ++}; ++ + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + +-void update_secontext_type(const char *file, const char *newtype); ++void update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue); + + # ifdef PRINT_SECONTEXT_FULL + +-# define SECONTEXT_FILE(filename) secontext_full_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_full_pid(pid) + + # else + +-# define SECONTEXT_FILE(filename) secontext_short_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_short_pid(pid) + + # endif +@@ -34,7 +49,8 @@ void update_secontext_type(const char *file, const char *newtype); + #else + + static inline void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { + } + +diff --git a/tests-m32/gen_tests.in b/tests-m32/gen_tests.in +index 8b4e2e9..71e2f17 100644 +--- a/tests-m32/gen_tests.in ++++ b/tests-m32/gen_tests.in +@@ -12,6 +12,8 @@ accept4 -a37 + access -a30 --trace-path=access_sample + access--secontext -a30 --secontext --trace-path=access_sample -e trace=access + access--secontext_full -a30 --secontext=full --trace-path=access_sample -e trace=access ++access--secontext_full_mismatch -a30 --secontext=full,mismatch --trace-path=access_sample -e trace=access ++access--secontext_mismatch -a30 --secontext=mismatch --trace-path=access_sample -e trace=access + acct -a20 + add_key -a30 -s12 + adjtimex -a15 +@@ -27,8 +29,10 @@ bpf-v -a20 -v -e trace=bpf + btrfs +ioctl.test + chdir -a10 + chmod -a28 +-chmod--secontext -a28 --secontext -e trace=chmod +-chmod--secontext_full -a28 --secontext=full -e trace=chmod ++chmod--secontext -a28 -e secontext=!full,mismatch -e trace=chmod ++chmod--secontext_full -a28 -e secontext=full -e trace=chmod ++chmod--secontext_full_mismatch -a28 --secontext=mismatch,full -e trace=chmod ++chmod--secontext_mismatch -a28 --secontext=mismatch -e trace=chmod + chown -a28 + chown32 -a31 + chroot -a13 +@@ -84,16 +88,24 @@ epoll_wait -a26 + erestartsys -a34 -e signal=none -e trace=recvfrom + execve--secontext +execve.test --secontext + execve--secontext_full +execve.test --secontext=full ++execve--secontext_full_mismatch +execve.test --secontext=full,mismatch ++execve--secontext_mismatch +execve.test --secontext=mismatch + execveat + execveat--secontext --secontext --trace=execveat + execveat--secontext_full --secontext=full --trace=execveat ++execveat--secontext_full_mismatch --secontext=full,mismatch --trace=execveat ++execveat--secontext_mismatch --secontext=mismatch --trace=execveat + execveat-v -v -e trace=execveat + faccessat--secontext +faccessat.test -a24 --secontext + faccessat--secontext_full +faccessat.test -a24 --secontext=full ++faccessat--secontext_full_mismatch +faccessat.test -a24 --secontext=full,mismatch ++faccessat--secontext_mismatch +faccessat.test -a24 --secontext=mismatch + faccessat-P -a23 --trace=faccessat -P /dev/full + faccessat-y +faccessat.test -a24 -y + faccessat-y--secontext +faccessat.test -a24 -y --secontext + faccessat-y--secontext_full +faccessat.test -a24 -y --secontext=full ++faccessat-y--secontext_full_mismatch +faccessat.test -a24 -y --secontext=full,mismatch ++faccessat-y--secontext_mismatch +faccessat.test -a24 -y --secontext=mismatch + faccessat-yy +faccessat.test -a24 -yy + faccessat2-P -a27 --trace=faccessat2 -P /dev/full + faccessat2-y +faccessat2.test -a28 -y +@@ -104,6 +116,8 @@ fanotify_init + fanotify_mark -a32 + fanotify_mark--secontext -a32 --secontext -e trace=fanotify_mark + fanotify_mark--secontext_full -a32 --secontext=full -e trace=fanotify_mark ++fanotify_mark--secontext_full_mismatch -a32 --secontext=full,mismatch -e trace=fanotify_mark ++fanotify_mark--secontext_mismatch -a32 --secontext=mismatch -e trace=fanotify_mark + fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark + fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark + fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark +@@ -111,17 +125,25 @@ fchdir -a11 + fchmod -a15 + fchmod--secontext -a15 --secontext -e trace=fchmod + fchmod--secontext_full -a15 --secontext=full -e trace=fchmod ++fchmod--secontext_full_mismatch -a15 --secontext=full,mismatch -e trace=fchmod ++fchmod--secontext_mismatch -a15 --secontext=mismatch -e trace=fchmod + fchmod-y -y -e trace=fchmod + fchmod-y--secontext -a15 -y --secontext -e trace=fchmod + fchmod-y--secontext_full -a15 -y --secontext=full -e trace=fchmod ++fchmod-y--secontext_full_mismatch -a15 -y --secontext=full,mismatch -e trace=fchmod ++fchmod-y--secontext_mismatch -a15 -y --secontext=mismatch -e trace=fchmod + fchmodat + fchmodat--secontext --secontext -e trace=fchmodat + fchmodat--secontext_full --secontext=full -e trace=fchmodat ++fchmodat--secontext_full_mismatch --secontext=full,mismatch -e trace=fchmodat ++fchmodat--secontext_mismatch --secontext=mismatch -e trace=fchmodat + fchown -a16 + fchown32 -a18 + fchownat + fchownat--secontext --secontext -e trace=fchownat + fchownat--secontext_full --secontext=full -e trace=fchownat ++fchownat--secontext_full_mismatch -e secontext=full,mismatch -e trace=fchownat ++fchownat--secontext_mismatch -e secontext=mismatch -e trace=fchownat + fcntl -a8 + fcntl--pidns-translation test_pidns -a8 -e trace=fcntl + fcntl64 -a8 +@@ -130,6 +152,8 @@ fdatasync -a14 + file_handle -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext --secontext -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext_full --secontext=full -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_full_mismatch --secontext=full,mismatch -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_mismatch --secontext=mismatch -e trace=name_to_handle_at,open_by_handle_at + filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f + filter_seccomp-flag ../$NAME + finit_module -a25 +@@ -383,6 +407,8 @@ link + linkat + linkat--secontext --secontext -e trace=linkat + linkat--secontext_full --secontext=full -e trace=linkat ++linkat--secontext_full_mismatch --secontext=full,mismatch -e trace=linkat ++linkat--secontext_mismatch --secontext=mismatch -e trace=linkat + lookup_dcookie -a27 + lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full + lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +@@ -526,11 +552,15 @@ oldstat -a32 -v -P stat.sample -P /dev/full + open -a30 -P $NAME.sample + open--secontext -a30 -P open.sample --secontext --trace=open + open--secontext_full -a30 -P open.sample --secontext=full --trace=open ++open--secontext_full_mismatch -a30 -P open.sample --secontext=full,mismatch --trace=open ++open--secontext_mismatch -a30 -P open.sample --secontext=mismatch --trace=open + open_tree -a30 -y + open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree + openat -a36 -P $NAME.sample + openat--secontext -a36 -P openat.sample -P $PWD/openat.sample --secontext -e trace=openat + openat--secontext_full -a36 -P openat.sample -P $PWD/openat.sample --secontext=full -e trace=openat ++openat--secontext_full_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=full,mismatch -e trace=openat ++openat--secontext_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=mismatch -e trace=openat + openat2 -a35 + openat2-Xabbrev --trace=openat2 -a35 -Xabbrev + openat2-Xraw --trace=openat2 -a32 -Xraw +diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c +index 1d41d3d..1a869e3 100644 +--- a/tests-m32/linkat.c ++++ b/tests-m32/linkat.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + + #include "secontext.h" + #include "xmalloc.h" +@@ -88,10 +89,42 @@ main(void) + perror_msg_and_fail("close"); + + free(sample_1_secontext); +- update_secontext_type(sample_1, "default_t"); ++ ++#ifdef PRINT_SECONTEXT_MISMATCH ++ update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ sample_1_secontext = SECONTEXT_FILE(sample_1); ++ ++# ifdef PRINT_SECONTEXT_FULL ++ /* The mismatch should be detected */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "system_u") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++# else ++ /* The mismatch cannot be detected since it's on user part */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") != NULL) ++ perror_msg_and_fail("Context mismatch detected: %s", ++ sample_1_secontext); ++# endif ++ ++ free(sample_1_secontext); ++#endif ++ ++ update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++#endif ++ + rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, 0); + printf("%s%s(AT_FDCWD, \"%s\"%s, AT_FDCWD, \"%s\"%s, 0) = %s\n", + my_secontext, "linkat", +@@ -108,8 +141,19 @@ main(void) + + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); ++ ++ update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++#endif ++ + rc = syscall(__NR_linkat, dfd_old, sample_1, -100, sample_2, 0); + /* no context printed for sample_2 since file doesn't exist yet */ + printf("%s%s(%d%s, \"%s\"%s, AT_FDCWD, \"%s\", 0) = %s\n", +diff --git a/tests-m32/options-syntax.test b/tests-m32/options-syntax.test +index 765b2f8..848d297 100755 +--- a/tests-m32/options-syntax.test ++++ b/tests-m32/options-syntax.test +@@ -48,8 +48,18 @@ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --ti + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$ +-[ -z "$compiled_with_secontext" ] || +- check_h "invalid --secontext argument: 'ss'" --secontext=ss ++if [ -n "$compiled_with_secontext" ]; then ++ for opt in '--secontext' '-e secontext'; do ++ check_e "invalid secontext ''" $opt= ++ check_e "invalid secontext 'ss'" $opt=ss ++ check_e "invalid secontext 'ss'" $opt=ss,full,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss ++ check_e "invalid secontext 'ss'" $opt=full,mismatch,ss ++ check_e "invalid secontext 'ss'" $opt=!full,ss ++ check_e "invalid secontext 'ss'" $opt=!full,mismatch,ss ++ done ++fi + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$ +diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c +index 21c6370..848eea9 100644 +--- a/tests-m32/secontext.c ++++ b/tests-m32/secontext.c +@@ -13,8 +13,10 @@ + # include + # include + # include ++# include + # include + # include ++# include + + # include "xmalloc.h" + +@@ -55,6 +57,79 @@ strip_trailing_newlines(char *context) + } + + static char * ++get_type_from_context(const char *full_context) ++{ ++ int saved_errno = errno; ++ ++ if (!full_context) ++ return NULL; ++ ++ char *saveptr = NULL; ++ const char *token; ++ unsigned int i; ++ ++ char *ctx_copy = xstrdup(full_context); ++ char *context = NULL; ++ for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), i++) { ++ if (i == 2) { ++ context = xstrdup(token); ++ break; ++ } ++ } ++ if (!context) ++ context = xstrdup(full_context); ++ free(ctx_copy); ++ ++ errno = saved_errno; ++ return context; ++} ++ ++static char * ++raw_expected_secontext_full_file(const char *filename) ++{ ++ int saved_errno = errno; ++ char *secontext; ++ ++ static struct selabel_handle *hdl; ++ if (!hdl) { ++ hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0); ++ if (!hdl) ++ perror_msg_and_skip("selabel_open"); ++ } ++ ++ char *resolved = realpath(filename, NULL); ++ if (!resolved) ++ perror_msg_and_fail("realpath: %s", filename); ++ ++ struct stat statbuf; ++ if (stat(resolved, &statbuf) < 0) ++ perror_msg_and_fail("stat: %s", resolved); ++ ++ if (selabel_lookup(hdl, &secontext, resolved, statbuf.st_mode) < 0) ++ perror_msg_and_skip("selabel_lookup: %s", resolved); ++ free(resolved); ++ ++ char *full_secontext = xstrdup(secontext); ++ freecon(secontext); ++ errno = saved_errno; ++ return full_secontext; ++} ++ ++static char * ++raw_expected_secontext_short_file(const char *filename) ++{ ++ int saved_errno = errno; ++ ++ char *ctx = raw_expected_secontext_full_file(filename); ++ char *type = get_type_from_context(ctx); ++ free(ctx); ++ ++ errno = saved_errno; ++ return type; ++} ++ ++static char * + raw_secontext_full_file(const char *filename) + { + int saved_errno = errno; +@@ -75,29 +150,11 @@ raw_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_secontext_full_file(filename); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- unsigned int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + static char * +@@ -121,35 +178,30 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + char * +-secontext_full_file(const char *filename) ++secontext_full_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_full_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_full_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_full_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -159,9 +211,22 @@ secontext_full_pid(pid_t pid) + } + + char * +-secontext_short_file(const char *filename) ++secontext_short_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_short_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_short_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_short_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -171,31 +236,38 @@ secontext_short_pid(pid_t pid) + } + + void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { ++ int saved_errno = errno; ++ assert(field >= SECONTEXT_USER && field <= SECONTEXT_TYPE); ++ + char *ctx = raw_secontext_full_file(file); + if (ctx == NULL) + return; + + char *saveptr = NULL; + char *token; +- int field; ++ int nfields; + char *split[4]; + +- for (token = strtok_r(ctx, ":", &saveptr), field = 0; +- token; token = strtok_r(NULL, ":", &saveptr), field++) { +- assert(field < 4); +- split[field] = token; ++ for (token = strtok_r(ctx, ":", &saveptr), nfields = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), nfields++) { ++ assert(nfields < 4); ++ split[nfields] = token; + } +- assert(field == 4); ++ assert(nfields == 4); ++ ++ split[field] = (char *)newvalue; + + char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1], +- newtype, split[3]); ++ split[2], split[3]); + + (void) setfilecon(file, newcontext); + + free(newcontext); + free(ctx); ++ errno = saved_errno; + } + + #endif /* HAVE_SELINUX_RUNTIME */ +diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h +index c65f53a..1d0251a 100644 +--- a/tests-m32/secontext.h ++++ b/tests-m32/secontext.h +@@ -9,24 +9,39 @@ + #include "xmalloc.h" + #include + +-char *secontext_full_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC; + +-char *secontext_short_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC; + ++enum secontext_field { ++ SECONTEXT_USER, ++ SECONTEXT_ROLE, ++ SECONTEXT_TYPE ++}; ++ + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + +-void update_secontext_type(const char *file, const char *newtype); ++void update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue); + + # ifdef PRINT_SECONTEXT_FULL + +-# define SECONTEXT_FILE(filename) secontext_full_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_full_pid(pid) + + # else + +-# define SECONTEXT_FILE(filename) secontext_short_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_short_pid(pid) + + # endif +@@ -34,7 +49,8 @@ void update_secontext_type(const char *file, const char *newtype); + #else + + static inline void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { + } + +diff --git a/tests-mx32/gen_tests.in b/tests-mx32/gen_tests.in +index 8b4e2e9..71e2f17 100644 +--- a/tests-mx32/gen_tests.in ++++ b/tests-mx32/gen_tests.in +@@ -12,6 +12,8 @@ accept4 -a37 + access -a30 --trace-path=access_sample + access--secontext -a30 --secontext --trace-path=access_sample -e trace=access + access--secontext_full -a30 --secontext=full --trace-path=access_sample -e trace=access ++access--secontext_full_mismatch -a30 --secontext=full,mismatch --trace-path=access_sample -e trace=access ++access--secontext_mismatch -a30 --secontext=mismatch --trace-path=access_sample -e trace=access + acct -a20 + add_key -a30 -s12 + adjtimex -a15 +@@ -27,8 +29,10 @@ bpf-v -a20 -v -e trace=bpf + btrfs +ioctl.test + chdir -a10 + chmod -a28 +-chmod--secontext -a28 --secontext -e trace=chmod +-chmod--secontext_full -a28 --secontext=full -e trace=chmod ++chmod--secontext -a28 -e secontext=!full,mismatch -e trace=chmod ++chmod--secontext_full -a28 -e secontext=full -e trace=chmod ++chmod--secontext_full_mismatch -a28 --secontext=mismatch,full -e trace=chmod ++chmod--secontext_mismatch -a28 --secontext=mismatch -e trace=chmod + chown -a28 + chown32 -a31 + chroot -a13 +@@ -84,16 +88,24 @@ epoll_wait -a26 + erestartsys -a34 -e signal=none -e trace=recvfrom + execve--secontext +execve.test --secontext + execve--secontext_full +execve.test --secontext=full ++execve--secontext_full_mismatch +execve.test --secontext=full,mismatch ++execve--secontext_mismatch +execve.test --secontext=mismatch + execveat + execveat--secontext --secontext --trace=execveat + execveat--secontext_full --secontext=full --trace=execveat ++execveat--secontext_full_mismatch --secontext=full,mismatch --trace=execveat ++execveat--secontext_mismatch --secontext=mismatch --trace=execveat + execveat-v -v -e trace=execveat + faccessat--secontext +faccessat.test -a24 --secontext + faccessat--secontext_full +faccessat.test -a24 --secontext=full ++faccessat--secontext_full_mismatch +faccessat.test -a24 --secontext=full,mismatch ++faccessat--secontext_mismatch +faccessat.test -a24 --secontext=mismatch + faccessat-P -a23 --trace=faccessat -P /dev/full + faccessat-y +faccessat.test -a24 -y + faccessat-y--secontext +faccessat.test -a24 -y --secontext + faccessat-y--secontext_full +faccessat.test -a24 -y --secontext=full ++faccessat-y--secontext_full_mismatch +faccessat.test -a24 -y --secontext=full,mismatch ++faccessat-y--secontext_mismatch +faccessat.test -a24 -y --secontext=mismatch + faccessat-yy +faccessat.test -a24 -yy + faccessat2-P -a27 --trace=faccessat2 -P /dev/full + faccessat2-y +faccessat2.test -a28 -y +@@ -104,6 +116,8 @@ fanotify_init + fanotify_mark -a32 + fanotify_mark--secontext -a32 --secontext -e trace=fanotify_mark + fanotify_mark--secontext_full -a32 --secontext=full -e trace=fanotify_mark ++fanotify_mark--secontext_full_mismatch -a32 --secontext=full,mismatch -e trace=fanotify_mark ++fanotify_mark--secontext_mismatch -a32 --secontext=mismatch -e trace=fanotify_mark + fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark + fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark + fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark +@@ -111,17 +125,25 @@ fchdir -a11 + fchmod -a15 + fchmod--secontext -a15 --secontext -e trace=fchmod + fchmod--secontext_full -a15 --secontext=full -e trace=fchmod ++fchmod--secontext_full_mismatch -a15 --secontext=full,mismatch -e trace=fchmod ++fchmod--secontext_mismatch -a15 --secontext=mismatch -e trace=fchmod + fchmod-y -y -e trace=fchmod + fchmod-y--secontext -a15 -y --secontext -e trace=fchmod + fchmod-y--secontext_full -a15 -y --secontext=full -e trace=fchmod ++fchmod-y--secontext_full_mismatch -a15 -y --secontext=full,mismatch -e trace=fchmod ++fchmod-y--secontext_mismatch -a15 -y --secontext=mismatch -e trace=fchmod + fchmodat + fchmodat--secontext --secontext -e trace=fchmodat + fchmodat--secontext_full --secontext=full -e trace=fchmodat ++fchmodat--secontext_full_mismatch --secontext=full,mismatch -e trace=fchmodat ++fchmodat--secontext_mismatch --secontext=mismatch -e trace=fchmodat + fchown -a16 + fchown32 -a18 + fchownat + fchownat--secontext --secontext -e trace=fchownat + fchownat--secontext_full --secontext=full -e trace=fchownat ++fchownat--secontext_full_mismatch -e secontext=full,mismatch -e trace=fchownat ++fchownat--secontext_mismatch -e secontext=mismatch -e trace=fchownat + fcntl -a8 + fcntl--pidns-translation test_pidns -a8 -e trace=fcntl + fcntl64 -a8 +@@ -130,6 +152,8 @@ fdatasync -a14 + file_handle -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext --secontext -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext_full --secontext=full -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_full_mismatch --secontext=full,mismatch -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_mismatch --secontext=mismatch -e trace=name_to_handle_at,open_by_handle_at + filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f + filter_seccomp-flag ../$NAME + finit_module -a25 +@@ -383,6 +407,8 @@ link + linkat + linkat--secontext --secontext -e trace=linkat + linkat--secontext_full --secontext=full -e trace=linkat ++linkat--secontext_full_mismatch --secontext=full,mismatch -e trace=linkat ++linkat--secontext_mismatch --secontext=mismatch -e trace=linkat + lookup_dcookie -a27 + lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full + lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +@@ -526,11 +552,15 @@ oldstat -a32 -v -P stat.sample -P /dev/full + open -a30 -P $NAME.sample + open--secontext -a30 -P open.sample --secontext --trace=open + open--secontext_full -a30 -P open.sample --secontext=full --trace=open ++open--secontext_full_mismatch -a30 -P open.sample --secontext=full,mismatch --trace=open ++open--secontext_mismatch -a30 -P open.sample --secontext=mismatch --trace=open + open_tree -a30 -y + open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree + openat -a36 -P $NAME.sample + openat--secontext -a36 -P openat.sample -P $PWD/openat.sample --secontext -e trace=openat + openat--secontext_full -a36 -P openat.sample -P $PWD/openat.sample --secontext=full -e trace=openat ++openat--secontext_full_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=full,mismatch -e trace=openat ++openat--secontext_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=mismatch -e trace=openat + openat2 -a35 + openat2-Xabbrev --trace=openat2 -a35 -Xabbrev + openat2-Xraw --trace=openat2 -a32 -Xraw +diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c +index 1d41d3d..1a869e3 100644 +--- a/tests-mx32/linkat.c ++++ b/tests-mx32/linkat.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + + #include "secontext.h" + #include "xmalloc.h" +@@ -88,10 +89,42 @@ main(void) + perror_msg_and_fail("close"); + + free(sample_1_secontext); +- update_secontext_type(sample_1, "default_t"); ++ ++#ifdef PRINT_SECONTEXT_MISMATCH ++ update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ sample_1_secontext = SECONTEXT_FILE(sample_1); ++ ++# ifdef PRINT_SECONTEXT_FULL ++ /* The mismatch should be detected */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "system_u") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++# else ++ /* The mismatch cannot be detected since it's on user part */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") != NULL) ++ perror_msg_and_fail("Context mismatch detected: %s", ++ sample_1_secontext); ++# endif ++ ++ free(sample_1_secontext); ++#endif ++ ++ update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++#endif ++ + rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, 0); + printf("%s%s(AT_FDCWD, \"%s\"%s, AT_FDCWD, \"%s\"%s, 0) = %s\n", + my_secontext, "linkat", +@@ -108,8 +141,19 @@ main(void) + + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); ++ ++ update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++#endif ++ + rc = syscall(__NR_linkat, dfd_old, sample_1, -100, sample_2, 0); + /* no context printed for sample_2 since file doesn't exist yet */ + printf("%s%s(%d%s, \"%s\"%s, AT_FDCWD, \"%s\", 0) = %s\n", +diff --git a/tests-mx32/options-syntax.test b/tests-mx32/options-syntax.test +index 765b2f8..848d297 100755 +--- a/tests-mx32/options-syntax.test ++++ b/tests-mx32/options-syntax.test +@@ -48,8 +48,18 @@ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --ti + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$ +-[ -z "$compiled_with_secontext" ] || +- check_h "invalid --secontext argument: 'ss'" --secontext=ss ++if [ -n "$compiled_with_secontext" ]; then ++ for opt in '--secontext' '-e secontext'; do ++ check_e "invalid secontext ''" $opt= ++ check_e "invalid secontext 'ss'" $opt=ss ++ check_e "invalid secontext 'ss'" $opt=ss,full,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss ++ check_e "invalid secontext 'ss'" $opt=full,mismatch,ss ++ check_e "invalid secontext 'ss'" $opt=!full,ss ++ check_e "invalid secontext 'ss'" $opt=!full,mismatch,ss ++ done ++fi + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$ +diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c +index 21c6370..848eea9 100644 +--- a/tests-mx32/secontext.c ++++ b/tests-mx32/secontext.c +@@ -13,8 +13,10 @@ + # include + # include + # include ++# include + # include + # include ++# include + + # include "xmalloc.h" + +@@ -55,6 +57,79 @@ strip_trailing_newlines(char *context) + } + + static char * ++get_type_from_context(const char *full_context) ++{ ++ int saved_errno = errno; ++ ++ if (!full_context) ++ return NULL; ++ ++ char *saveptr = NULL; ++ const char *token; ++ unsigned int i; ++ ++ char *ctx_copy = xstrdup(full_context); ++ char *context = NULL; ++ for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), i++) { ++ if (i == 2) { ++ context = xstrdup(token); ++ break; ++ } ++ } ++ if (!context) ++ context = xstrdup(full_context); ++ free(ctx_copy); ++ ++ errno = saved_errno; ++ return context; ++} ++ ++static char * ++raw_expected_secontext_full_file(const char *filename) ++{ ++ int saved_errno = errno; ++ char *secontext; ++ ++ static struct selabel_handle *hdl; ++ if (!hdl) { ++ hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0); ++ if (!hdl) ++ perror_msg_and_skip("selabel_open"); ++ } ++ ++ char *resolved = realpath(filename, NULL); ++ if (!resolved) ++ perror_msg_and_fail("realpath: %s", filename); ++ ++ struct stat statbuf; ++ if (stat(resolved, &statbuf) < 0) ++ perror_msg_and_fail("stat: %s", resolved); ++ ++ if (selabel_lookup(hdl, &secontext, resolved, statbuf.st_mode) < 0) ++ perror_msg_and_skip("selabel_lookup: %s", resolved); ++ free(resolved); ++ ++ char *full_secontext = xstrdup(secontext); ++ freecon(secontext); ++ errno = saved_errno; ++ return full_secontext; ++} ++ ++static char * ++raw_expected_secontext_short_file(const char *filename) ++{ ++ int saved_errno = errno; ++ ++ char *ctx = raw_expected_secontext_full_file(filename); ++ char *type = get_type_from_context(ctx); ++ free(ctx); ++ ++ errno = saved_errno; ++ return type; ++} ++ ++static char * + raw_secontext_full_file(const char *filename) + { + int saved_errno = errno; +@@ -75,29 +150,11 @@ raw_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_secontext_full_file(filename); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- unsigned int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + static char * +@@ -121,35 +178,30 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + char * +-secontext_full_file(const char *filename) ++secontext_full_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_full_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_full_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_full_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -159,9 +211,22 @@ secontext_full_pid(pid_t pid) + } + + char * +-secontext_short_file(const char *filename) ++secontext_short_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_short_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_short_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_short_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -171,31 +236,38 @@ secontext_short_pid(pid_t pid) + } + + void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { ++ int saved_errno = errno; ++ assert(field >= SECONTEXT_USER && field <= SECONTEXT_TYPE); ++ + char *ctx = raw_secontext_full_file(file); + if (ctx == NULL) + return; + + char *saveptr = NULL; + char *token; +- int field; ++ int nfields; + char *split[4]; + +- for (token = strtok_r(ctx, ":", &saveptr), field = 0; +- token; token = strtok_r(NULL, ":", &saveptr), field++) { +- assert(field < 4); +- split[field] = token; ++ for (token = strtok_r(ctx, ":", &saveptr), nfields = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), nfields++) { ++ assert(nfields < 4); ++ split[nfields] = token; + } +- assert(field == 4); ++ assert(nfields == 4); ++ ++ split[field] = (char *)newvalue; + + char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1], +- newtype, split[3]); ++ split[2], split[3]); + + (void) setfilecon(file, newcontext); + + free(newcontext); + free(ctx); ++ errno = saved_errno; + } + + #endif /* HAVE_SELINUX_RUNTIME */ +diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h +index c65f53a..1d0251a 100644 +--- a/tests-mx32/secontext.h ++++ b/tests-mx32/secontext.h +@@ -9,24 +9,39 @@ + #include "xmalloc.h" + #include + +-char *secontext_full_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC; + +-char *secontext_short_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC; + ++enum secontext_field { ++ SECONTEXT_USER, ++ SECONTEXT_ROLE, ++ SECONTEXT_TYPE ++}; ++ + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + +-void update_secontext_type(const char *file, const char *newtype); ++void update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue); + + # ifdef PRINT_SECONTEXT_FULL + +-# define SECONTEXT_FILE(filename) secontext_full_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_full_pid(pid) + + # else + +-# define SECONTEXT_FILE(filename) secontext_short_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_short_pid(pid) + + # endif +@@ -34,7 +49,8 @@ void update_secontext_type(const char *file, const char *newtype); + #else + + static inline void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { + } + +--- old/tests/Makefile.in 2022-02-07 20:23:38.724063729 +0100 ++++ new/tests/Makefile.in 2022-02-07 20:24:05.660063357 +0100 +@@ -614,25 +614,55 @@ + xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \ + xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT) + am__EXEEXT_2 = access--secontext$(EXEEXT) \ +- access--secontext_full$(EXEEXT) chmod--secontext$(EXEEXT) \ +- chmod--secontext_full$(EXEEXT) execve--secontext$(EXEEXT) \ +- execve--secontext_full$(EXEEXT) execveat--secontext$(EXEEXT) \ +- execveat--secontext_full$(EXEEXT) \ ++ access--secontext_full$(EXEEXT) \ ++ access--secontext_full_mismatch$(EXEEXT) \ ++ access--secontext_mismatch$(EXEEXT) chmod--secontext$(EXEEXT) \ ++ chmod--secontext_full$(EXEEXT) \ ++ chmod--secontext_full_mismatch$(EXEEXT) \ ++ chmod--secontext_mismatch$(EXEEXT) execve--secontext$(EXEEXT) \ ++ execve--secontext_full$(EXEEXT) \ ++ execve--secontext_full_mismatch$(EXEEXT) \ ++ execve--secontext_mismatch$(EXEEXT) \ ++ execveat--secontext$(EXEEXT) execveat--secontext_full$(EXEEXT) \ ++ execveat--secontext_full_mismatch$(EXEEXT) \ ++ execveat--secontext_mismatch$(EXEEXT) \ + faccessat--secontext$(EXEEXT) \ + faccessat--secontext_full$(EXEEXT) \ ++ faccessat--secontext_full_mismatch$(EXEEXT) \ ++ faccessat--secontext_mismatch$(EXEEXT) \ + faccessat-y--secontext$(EXEEXT) \ + faccessat-y--secontext_full$(EXEEXT) \ ++ faccessat-y--secontext_full_mismatch$(EXEEXT) \ ++ faccessat-y--secontext_mismatch$(EXEEXT) \ + fanotify_mark--secontext$(EXEEXT) \ + fanotify_mark--secontext_full$(EXEEXT) \ ++ fanotify_mark--secontext_full_mismatch$(EXEEXT) \ ++ fanotify_mark--secontext_mismatch$(EXEEXT) \ + fchmod--secontext$(EXEEXT) fchmod--secontext_full$(EXEEXT) \ ++ fchmod--secontext_full_mismatch$(EXEEXT) \ ++ fchmod--secontext_mismatch$(EXEEXT) \ + fchmod-y--secontext$(EXEEXT) fchmod-y--secontext_full$(EXEEXT) \ ++ fchmod-y--secontext_full_mismatch$(EXEEXT) \ ++ fchmod-y--secontext_mismatch$(EXEEXT) \ + fchmodat--secontext$(EXEEXT) fchmodat--secontext_full$(EXEEXT) \ ++ fchmodat--secontext_full_mismatch$(EXEEXT) \ ++ fchmodat--secontext_mismatch$(EXEEXT) \ + fchownat--secontext$(EXEEXT) fchownat--secontext_full$(EXEEXT) \ ++ fchownat--secontext_full_mismatch$(EXEEXT) \ ++ fchownat--secontext_mismatch$(EXEEXT) \ + file_handle--secontext$(EXEEXT) \ + file_handle--secontext_full$(EXEEXT) \ ++ file_handle--secontext_full_mismatch$(EXEEXT) \ ++ file_handle--secontext_mismatch$(EXEEXT) \ + linkat--secontext$(EXEEXT) linkat--secontext_full$(EXEEXT) \ +- open--secontext$(EXEEXT) open--secontext_full$(EXEEXT) \ +- openat--secontext$(EXEEXT) openat--secontext_full$(EXEEXT) ++ linkat--secontext_full_mismatch$(EXEEXT) \ ++ linkat--secontext_mismatch$(EXEEXT) open--secontext$(EXEEXT) \ ++ open--secontext_full$(EXEEXT) \ ++ open--secontext_full_mismatch$(EXEEXT) \ ++ open--secontext_mismatch$(EXEEXT) openat--secontext$(EXEEXT) \ ++ openat--secontext_full$(EXEEXT) \ ++ openat--secontext_full_mismatch$(EXEEXT) \ ++ openat--secontext_mismatch$(EXEEXT) + ARFLAGS = cru + AM_V_AR = $(am__v_AR_@AM_V@) + am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +@@ -661,6 +691,17 @@ + access__secontext_full_SOURCES = access--secontext_full.c + access__secontext_full_OBJECTS = access--secontext_full.$(OBJEXT) + access__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++access__secontext_full_mismatch_SOURCES = \ ++ access--secontext_full_mismatch.c ++access__secontext_full_mismatch_OBJECTS = \ ++ access--secontext_full_mismatch.$(OBJEXT) ++access__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++access__secontext_mismatch_SOURCES = access--secontext_mismatch.c ++access__secontext_mismatch_OBJECTS = \ ++ access--secontext_mismatch.$(OBJEXT) ++access__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + acct_SOURCES = acct.c + acct_OBJECTS = acct.$(OBJEXT) + acct_LDADD = $(LDADD) +@@ -789,6 +830,17 @@ + chmod__secontext_full_SOURCES = chmod--secontext_full.c + chmod__secontext_full_OBJECTS = chmod--secontext_full.$(OBJEXT) + chmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++chmod__secontext_full_mismatch_SOURCES = \ ++ chmod--secontext_full_mismatch.c ++chmod__secontext_full_mismatch_OBJECTS = \ ++ chmod--secontext_full_mismatch.$(OBJEXT) ++chmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++chmod__secontext_mismatch_SOURCES = chmod--secontext_mismatch.c ++chmod__secontext_mismatch_OBJECTS = \ ++ chmod--secontext_mismatch.$(OBJEXT) ++chmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + chown_SOURCES = chown.c + chown_OBJECTS = chown.$(OBJEXT) + chown_LDADD = $(LDADD) +@@ -1030,6 +1082,17 @@ + execve__secontext_full_SOURCES = execve--secontext_full.c + execve__secontext_full_OBJECTS = execve--secontext_full.$(OBJEXT) + execve__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execve__secontext_full_mismatch_SOURCES = \ ++ execve--secontext_full_mismatch.c ++execve__secontext_full_mismatch_OBJECTS = \ ++ execve--secontext_full_mismatch.$(OBJEXT) ++execve__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execve__secontext_mismatch_SOURCES = execve--secontext_mismatch.c ++execve__secontext_mismatch_OBJECTS = \ ++ execve--secontext_mismatch.$(OBJEXT) ++execve__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execve_v_SOURCES = execve-v.c + execve_v_OBJECTS = execve-v.$(OBJEXT) + execve_v_LDADD = $(LDADD) +@@ -1044,6 +1107,17 @@ + execveat__secontext_full_SOURCES = execveat--secontext_full.c + execveat__secontext_full_OBJECTS = execveat--secontext_full.$(OBJEXT) + execveat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execveat__secontext_full_mismatch_SOURCES = \ ++ execveat--secontext_full_mismatch.c ++execveat__secontext_full_mismatch_OBJECTS = \ ++ execveat--secontext_full_mismatch.$(OBJEXT) ++execveat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execveat__secontext_mismatch_SOURCES = execveat--secontext_mismatch.c ++execveat__secontext_mismatch_OBJECTS = \ ++ execveat--secontext_mismatch.$(OBJEXT) ++execveat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execveat_v_SOURCES = execveat-v.c + execveat_v_OBJECTS = execveat-v.$(OBJEXT) + execveat_v_LDADD = $(LDADD) +@@ -1060,6 +1134,18 @@ + faccessat--secontext_full.$(OBJEXT) + faccessat__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat__secontext_full_mismatch_SOURCES = \ ++ faccessat--secontext_full_mismatch.c ++faccessat__secontext_full_mismatch_OBJECTS = \ ++ faccessat--secontext_full_mismatch.$(OBJEXT) ++faccessat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat__secontext_mismatch_SOURCES = \ ++ faccessat--secontext_mismatch.c ++faccessat__secontext_mismatch_OBJECTS = \ ++ faccessat--secontext_mismatch.$(OBJEXT) ++faccessat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_P_SOURCES = faccessat-P.c + faccessat_P_OBJECTS = faccessat-P.$(OBJEXT) + faccessat_P_LDADD = $(LDADD) +@@ -1076,6 +1162,18 @@ + faccessat-y--secontext_full.$(OBJEXT) + faccessat_y__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat_y__secontext_full_mismatch_SOURCES = \ ++ faccessat-y--secontext_full_mismatch.c ++faccessat_y__secontext_full_mismatch_OBJECTS = \ ++ faccessat-y--secontext_full_mismatch.$(OBJEXT) ++faccessat_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat_y__secontext_mismatch_SOURCES = \ ++ faccessat-y--secontext_mismatch.c ++faccessat_y__secontext_mismatch_OBJECTS = \ ++ faccessat-y--secontext_mismatch.$(OBJEXT) ++faccessat_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_yy_SOURCES = faccessat-yy.c + faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT) + faccessat_yy_LDADD = $(LDADD) +@@ -1125,6 +1223,18 @@ + fanotify_mark--secontext_full.$(OBJEXT) + fanotify_mark__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_full_mismatch_SOURCES = \ ++ fanotify_mark--secontext_full_mismatch.c ++fanotify_mark__secontext_full_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_full_mismatch.$(OBJEXT) ++fanotify_mark__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_mismatch_SOURCES = \ ++ fanotify_mark--secontext_mismatch.c ++fanotify_mark__secontext_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_mismatch.$(OBJEXT) ++fanotify_mark__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c + fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT) + fanotify_mark_Xabbrev_LDADD = $(LDADD) +@@ -1151,6 +1261,17 @@ + fchmod__secontext_full_SOURCES = fchmod--secontext_full.c + fchmod__secontext_full_OBJECTS = fchmod--secontext_full.$(OBJEXT) + fchmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod__secontext_full_mismatch_SOURCES = \ ++ fchmod--secontext_full_mismatch.c ++fchmod__secontext_full_mismatch_OBJECTS = \ ++ fchmod--secontext_full_mismatch.$(OBJEXT) ++fchmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod__secontext_mismatch_SOURCES = fchmod--secontext_mismatch.c ++fchmod__secontext_mismatch_OBJECTS = \ ++ fchmod--secontext_mismatch.$(OBJEXT) ++fchmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmod_y_SOURCES = fchmod-y.c + fchmod_y_OBJECTS = fchmod-y.$(OBJEXT) + fchmod_y_LDADD = $(LDADD) +@@ -1161,6 +1282,17 @@ + fchmod_y__secontext_full_SOURCES = fchmod-y--secontext_full.c + fchmod_y__secontext_full_OBJECTS = fchmod-y--secontext_full.$(OBJEXT) + fchmod_y__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod_y__secontext_full_mismatch_SOURCES = \ ++ fchmod-y--secontext_full_mismatch.c ++fchmod_y__secontext_full_mismatch_OBJECTS = \ ++ fchmod-y--secontext_full_mismatch.$(OBJEXT) ++fchmod_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod_y__secontext_mismatch_SOURCES = fchmod-y--secontext_mismatch.c ++fchmod_y__secontext_mismatch_OBJECTS = \ ++ fchmod-y--secontext_mismatch.$(OBJEXT) ++fchmod_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmodat_SOURCES = fchmodat.c + fchmodat_OBJECTS = fchmodat.$(OBJEXT) + fchmodat_LDADD = $(LDADD) +@@ -1171,6 +1303,17 @@ + fchmodat__secontext_full_SOURCES = fchmodat--secontext_full.c + fchmodat__secontext_full_OBJECTS = fchmodat--secontext_full.$(OBJEXT) + fchmodat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmodat__secontext_full_mismatch_SOURCES = \ ++ fchmodat--secontext_full_mismatch.c ++fchmodat__secontext_full_mismatch_OBJECTS = \ ++ fchmodat--secontext_full_mismatch.$(OBJEXT) ++fchmodat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmodat__secontext_mismatch_SOURCES = fchmodat--secontext_mismatch.c ++fchmodat__secontext_mismatch_OBJECTS = \ ++ fchmodat--secontext_mismatch.$(OBJEXT) ++fchmodat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchown_SOURCES = fchown.c + fchown_OBJECTS = fchown.$(OBJEXT) + fchown_LDADD = $(LDADD) +@@ -1189,6 +1332,17 @@ + fchownat__secontext_full_SOURCES = fchownat--secontext_full.c + fchownat__secontext_full_OBJECTS = fchownat--secontext_full.$(OBJEXT) + fchownat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchownat__secontext_full_mismatch_SOURCES = \ ++ fchownat--secontext_full_mismatch.c ++fchownat__secontext_full_mismatch_OBJECTS = \ ++ fchownat--secontext_full_mismatch.$(OBJEXT) ++fchownat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchownat__secontext_mismatch_SOURCES = fchownat--secontext_mismatch.c ++fchownat__secontext_mismatch_OBJECTS = \ ++ fchownat--secontext_mismatch.$(OBJEXT) ++fchownat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fcntl_SOURCES = fcntl.c + fcntl_OBJECTS = fcntl.$(OBJEXT) + fcntl_LDADD = $(LDADD) +@@ -1226,6 +1380,18 @@ + file_handle--secontext_full.$(OBJEXT) + file_handle__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++file_handle__secontext_full_mismatch_SOURCES = \ ++ file_handle--secontext_full_mismatch.c ++file_handle__secontext_full_mismatch_OBJECTS = \ ++ file_handle--secontext_full_mismatch.$(OBJEXT) ++file_handle__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++file_handle__secontext_mismatch_SOURCES = \ ++ file_handle--secontext_mismatch.c ++file_handle__secontext_mismatch_OBJECTS = \ ++ file_handle--secontext_mismatch.$(OBJEXT) ++file_handle__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + filter_unavailable_SOURCES = filter-unavailable.c + filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT) + filter_unavailable_DEPENDENCIES = $(LDADD) +@@ -2317,6 +2483,17 @@ + linkat__secontext_full_SOURCES = linkat--secontext_full.c + linkat__secontext_full_OBJECTS = linkat--secontext_full.$(OBJEXT) + linkat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++linkat__secontext_full_mismatch_SOURCES = \ ++ linkat--secontext_full_mismatch.c ++linkat__secontext_full_mismatch_OBJECTS = \ ++ linkat--secontext_full_mismatch.$(OBJEXT) ++linkat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++linkat__secontext_mismatch_SOURCES = linkat--secontext_mismatch.c ++linkat__secontext_mismatch_OBJECTS = \ ++ linkat--secontext_mismatch.$(OBJEXT) ++linkat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + list_sigaction_signum_SOURCES = list_sigaction_signum.c + list_sigaction_signum_OBJECTS = list_sigaction_signum.$(OBJEXT) + list_sigaction_signum_LDADD = $(LDADD) +@@ -2975,6 +3152,15 @@ + open__secontext_full_SOURCES = open--secontext_full.c + open__secontext_full_OBJECTS = open--secontext_full.$(OBJEXT) + open__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++open__secontext_full_mismatch_SOURCES = \ ++ open--secontext_full_mismatch.c ++open__secontext_full_mismatch_OBJECTS = \ ++ open--secontext_full_mismatch.$(OBJEXT) ++open__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++open__secontext_mismatch_SOURCES = open--secontext_mismatch.c ++open__secontext_mismatch_OBJECTS = open--secontext_mismatch.$(OBJEXT) ++open__secontext_mismatch_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) + open_tree_SOURCES = open_tree.c + open_tree_OBJECTS = open_tree.$(OBJEXT) + open_tree_LDADD = $(LDADD) +@@ -2993,6 +3179,17 @@ + openat__secontext_full_SOURCES = openat--secontext_full.c + openat__secontext_full_OBJECTS = openat--secontext_full.$(OBJEXT) + openat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++openat__secontext_full_mismatch_SOURCES = \ ++ openat--secontext_full_mismatch.c ++openat__secontext_full_mismatch_OBJECTS = \ ++ openat--secontext_full_mismatch.$(OBJEXT) ++openat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++openat__secontext_mismatch_SOURCES = openat--secontext_mismatch.c ++openat__secontext_mismatch_OBJECTS = \ ++ openat--secontext_mismatch.$(OBJEXT) ++openat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + openat2_SOURCES = openat2.c + openat2_OBJECTS = openat2.$(OBJEXT) + openat2_LDADD = $(LDADD) +@@ -4449,6 +4646,8 @@ + ./$(DEPDIR)/_newselect.Po ./$(DEPDIR)/accept.Po \ + ./$(DEPDIR)/accept4.Po ./$(DEPDIR)/access--secontext.Po \ + ./$(DEPDIR)/access--secontext_full.Po ./$(DEPDIR)/access.Po \ ++ ./$(DEPDIR)/access--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/access--secontext_mismatch.Po \ + ./$(DEPDIR)/acct.Po ./$(DEPDIR)/add_key.Po \ + ./$(DEPDIR)/adjtimex.Po ./$(DEPDIR)/aio.Po \ + ./$(DEPDIR)/aio_pgetevents.Po ./$(DEPDIR)/alarm.Po \ +@@ -4468,6 +4667,8 @@ + ./$(DEPDIR)/chdir.Po ./$(DEPDIR)/check_sigblock.Po \ + ./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod--secontext.Po \ + ./$(DEPDIR)/chmod--secontext_full.Po ./$(DEPDIR)/chmod.Po \ ++ ./$(DEPDIR)/chmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/chmod--secontext_mismatch.Po \ + ./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \ + ./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \ + ./$(DEPDIR)/clock_adjtime64.Po ./$(DEPDIR)/clock_nanosleep.Po \ +@@ -4503,14 +4704,22 @@ + ./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \ + ./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve--secontext.Po \ + ./$(DEPDIR)/execve--secontext_full.Po ./$(DEPDIR)/execve-v.Po \ ++ ./$(DEPDIR)/execve--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execve--secontext_mismatch.Po \ + ./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat--secontext.Po \ + ./$(DEPDIR)/execveat--secontext_full.Po \ ++ ./$(DEPDIR)/execveat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execveat--secontext_mismatch.Po \ + ./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \ + ./$(DEPDIR)/faccessat--secontext.Po \ + ./$(DEPDIR)/faccessat--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-P.Po \ + ./$(DEPDIR)/faccessat-y--secontext.Po \ + ./$(DEPDIR)/faccessat-y--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-y.Po ./$(DEPDIR)/faccessat-yy.Po \ + ./$(DEPDIR)/faccessat.Po ./$(DEPDIR)/faccessat2-P.Po \ + ./$(DEPDIR)/faccessat2-y.Po ./$(DEPDIR)/faccessat2-yy.Po \ +@@ -4519,26 +4728,38 @@ + ./$(DEPDIR)/fanotify_init.Po \ + ./$(DEPDIR)/fanotify_mark--secontext.Po \ + ./$(DEPDIR)/fanotify_mark--secontext_full.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po \ + ./$(DEPDIR)/fanotify_mark-Xabbrev.Po \ + ./$(DEPDIR)/fanotify_mark-Xraw.Po \ + ./$(DEPDIR)/fanotify_mark-Xverbose.Po \ + ./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \ + ./$(DEPDIR)/fchmod--secontext.Po \ + ./$(DEPDIR)/fchmod--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y--secontext.Po \ + ./$(DEPDIR)/fchmod-y--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y.Po ./$(DEPDIR)/fchmod.Po \ + ./$(DEPDIR)/fchmodat--secontext.Po \ + ./$(DEPDIR)/fchmodat--secontext_full.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmodat.Po ./$(DEPDIR)/fchown.Po \ + ./$(DEPDIR)/fchown32.Po ./$(DEPDIR)/fchownat--secontext.Po \ + ./$(DEPDIR)/fchownat--secontext_full.Po \ ++ ./$(DEPDIR)/fchownat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchownat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchownat.Po \ + ./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fcntl64--pidns-translation.Po \ + ./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \ + ./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle--secontext.Po \ + ./$(DEPDIR)/file_handle--secontext_full.Po \ ++ ./$(DEPDIR)/file_handle--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/file_handle--secontext_mismatch.Po \ + ./$(DEPDIR)/file_handle.Po ./$(DEPDIR)/filter-unavailable.Po \ + ./$(DEPDIR)/filter_seccomp-flag.Po \ + ./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \ +@@ -4753,6 +4972,8 @@ + ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \ + ./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat--secontext.Po \ + ./$(DEPDIR)/linkat--secontext_full.Po ./$(DEPDIR)/linkat.Po \ ++ ./$(DEPDIR)/linkat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/linkat--secontext_mismatch.Po \ + ./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \ + ./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \ + ./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \ +@@ -4867,9 +5088,13 @@ + ./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \ + ./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open--secontext.Po \ + ./$(DEPDIR)/open--secontext_full.Po ./$(DEPDIR)/open.Po \ ++ ./$(DEPDIR)/open--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/open--secontext_mismatch.Po \ + ./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \ + ./$(DEPDIR)/openat--secontext.Po \ + ./$(DEPDIR)/openat--secontext_full.Po ./$(DEPDIR)/openat.Po \ ++ ./$(DEPDIR)/openat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/openat--secontext_mismatch.Po \ + ./$(DEPDIR)/openat2-Xabbrev.Po ./$(DEPDIR)/openat2-Xraw.Po \ + ./$(DEPDIR)/openat2-Xverbose.Po \ + ./$(DEPDIR)/openat2-v-y-Xabbrev.Po \ +@@ -5118,7 +5343,8 @@ + am__v_CCLD_1 = + SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ + accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4467,7 +4665,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4483,24 +4682,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4587,6 +4802,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4640,8 +4856,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -4752,7 +4970,8 @@ + xetpriority--pidns-translation.c xettimeofday.c zeroargc.c + DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ + accept.c accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4761,7 +4980,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4777,24 +4997,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4881,6 +5117,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4934,8 +5171,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -6211,66 +6450,126 @@ + secontext_EXECUTABLES = \ + access--secontext \ + access--secontext_full \ ++ access--secontext_full_mismatch \ ++ access--secontext_mismatch \ + chmod--secontext \ + chmod--secontext_full \ ++ chmod--secontext_full_mismatch \ ++ chmod--secontext_mismatch \ + execve--secontext \ + execve--secontext_full \ ++ execve--secontext_full_mismatch \ ++ execve--secontext_mismatch \ + execveat--secontext \ + execveat--secontext_full \ ++ execveat--secontext_full_mismatch \ ++ execveat--secontext_mismatch \ + faccessat--secontext \ + faccessat--secontext_full \ ++ faccessat--secontext_full_mismatch \ ++ faccessat--secontext_mismatch \ + faccessat-y--secontext \ + faccessat-y--secontext_full \ ++ faccessat-y--secontext_full_mismatch \ ++ faccessat-y--secontext_mismatch \ + fanotify_mark--secontext \ + fanotify_mark--secontext_full \ ++ fanotify_mark--secontext_full_mismatch \ ++ fanotify_mark--secontext_mismatch \ + fchmod--secontext \ + fchmod--secontext_full \ ++ fchmod--secontext_full_mismatch \ ++ fchmod--secontext_mismatch \ + fchmod-y--secontext \ + fchmod-y--secontext_full \ ++ fchmod-y--secontext_full_mismatch \ ++ fchmod-y--secontext_mismatch \ + fchmodat--secontext \ + fchmodat--secontext_full \ ++ fchmodat--secontext_full_mismatch \ ++ fchmodat--secontext_mismatch \ + fchownat--secontext \ + fchownat--secontext_full \ ++ fchownat--secontext_full_mismatch \ ++ fchownat--secontext_mismatch \ + file_handle--secontext \ + file_handle--secontext_full \ ++ file_handle--secontext_full_mismatch \ ++ file_handle--secontext_mismatch \ + linkat--secontext \ + linkat--secontext_full \ ++ linkat--secontext_full_mismatch \ ++ linkat--secontext_mismatch \ + open--secontext \ + open--secontext_full \ ++ open--secontext_full_mismatch \ ++ open--secontext_mismatch \ + openat--secontext \ + openat--secontext_full \ ++ openat--secontext_full_mismatch \ ++ openat--secontext_mismatch \ + # + + access__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + access__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + attach_f_p_LDADD = -lpthread $(LDADD) + count_f_LDADD = -lpthread $(LDADD) + delay_LDADD = $(clock_LIBS) $(LDADD) +@@ -6324,15 +6623,20 @@ + # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. + GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ + accept4.gen.test access.gen.test access--secontext.gen.test \ +- access--secontext_full.gen.test acct.gen.test add_key.gen.test \ +- adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test \ +- alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test \ ++ access--secontext_full.gen.test \ ++ access--secontext_full_mismatch.gen.test \ ++ access--secontext_mismatch.gen.test acct.gen.test \ ++ add_key.gen.test adjtimex.gen.test aio.gen.test \ ++ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \ ++ bpf-obj_get_info_by_fd.gen.test \ + bpf-obj_get_info_by_fd-prog.gen.test \ + bpf-obj_get_info_by_fd-prog-v.gen.test \ + bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test \ + btrfs.gen.test chdir.gen.test chmod.gen.test \ + chmod--secontext.gen.test chmod--secontext_full.gen.test \ +- chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test \ ++ chmod--secontext_full_mismatch.gen.test \ ++ chmod--secontext_mismatch.gen.test chown.gen.test \ ++ chown32.gen.test chroot.gen.test clock.gen.test \ + clock_adjtime.gen.test clock_adjtime64.gen.test \ + clock_nanosleep.gen.test clock_xettime.gen.test \ + clock_xettime64.gen.test clone3.gen.test \ +@@ -6355,36 +6659,53 @@ + epoll_pwait2-P.gen.test epoll_pwait2-y.gen.test \ + epoll_wait.gen.test erestartsys.gen.test \ + execve--secontext.gen.test execve--secontext_full.gen.test \ +- execveat.gen.test execveat--secontext.gen.test \ +- execveat--secontext_full.gen.test execveat-v.gen.test \ ++ execve--secontext_full_mismatch.gen.test \ ++ execve--secontext_mismatch.gen.test execveat.gen.test \ ++ execveat--secontext.gen.test execveat--secontext_full.gen.test \ ++ execveat--secontext_full_mismatch.gen.test \ ++ execveat--secontext_mismatch.gen.test execveat-v.gen.test \ + faccessat--secontext.gen.test \ +- faccessat--secontext_full.gen.test faccessat-P.gen.test \ ++ faccessat--secontext_full.gen.test \ ++ faccessat--secontext_full_mismatch.gen.test \ ++ faccessat--secontext_mismatch.gen.test faccessat-P.gen.test \ + faccessat-y.gen.test faccessat-y--secontext.gen.test \ +- faccessat-y--secontext_full.gen.test faccessat-yy.gen.test \ ++ faccessat-y--secontext_full.gen.test \ ++ faccessat-y--secontext_full_mismatch.gen.test \ ++ faccessat-y--secontext_mismatch.gen.test faccessat-yy.gen.test \ + faccessat2-P.gen.test faccessat2-y.gen.test \ + faccessat2-yy.gen.test fadvise64_64.gen.test \ + fallocate.gen.test fanotify_init.gen.test \ + fanotify_mark.gen.test fanotify_mark--secontext.gen.test \ + fanotify_mark--secontext_full.gen.test \ ++ fanotify_mark--secontext_full_mismatch.gen.test \ ++ fanotify_mark--secontext_mismatch.gen.test \ + fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \ + fanotify_mark-Xverbose.gen.test fchdir.gen.test \ + fchmod.gen.test fchmod--secontext.gen.test \ +- fchmod--secontext_full.gen.test fchmod-y.gen.test \ ++ fchmod--secontext_full.gen.test \ ++ fchmod--secontext_full_mismatch.gen.test \ ++ fchmod--secontext_mismatch.gen.test fchmod-y.gen.test \ + fchmod-y--secontext.gen.test fchmod-y--secontext_full.gen.test \ +- fchmodat.gen.test fchmodat--secontext.gen.test \ +- fchmodat--secontext_full.gen.test fchown.gen.test \ ++ fchmod-y--secontext_full_mismatch.gen.test \ ++ fchmod-y--secontext_mismatch.gen.test fchmodat.gen.test \ ++ fchmodat--secontext.gen.test fchmodat--secontext_full.gen.test \ ++ fchmodat--secontext_full_mismatch.gen.test \ ++ fchmodat--secontext_mismatch.gen.test fchown.gen.test \ + fchown32.gen.test fchownat.gen.test \ + fchownat--secontext.gen.test fchownat--secontext_full.gen.test \ +- fcntl.gen.test fcntl--pidns-translation.gen.test \ +- fcntl64.gen.test fcntl64--pidns-translation.gen.test \ +- fdatasync.gen.test file_handle.gen.test \ +- file_handle--secontext.gen.test \ +- file_handle--secontext_full.gen.test filter_seccomp.gen.test \ +- filter_seccomp-flag.gen.test finit_module.gen.test \ +- flock.gen.test fork-f.gen.test fsconfig.gen.test \ +- fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test \ +- fspick.gen.test fspick-P.gen.test fstat.gen.test \ +- fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ ++ fchownat--secontext_full_mismatch.gen.test \ ++ fchownat--secontext_mismatch.gen.test fcntl.gen.test \ ++ fcntl--pidns-translation.gen.test fcntl64.gen.test \ ++ fcntl64--pidns-translation.gen.test fdatasync.gen.test \ ++ file_handle.gen.test file_handle--secontext.gen.test \ ++ file_handle--secontext_full.gen.test \ ++ file_handle--secontext_full_mismatch.gen.test \ ++ file_handle--secontext_mismatch.gen.test \ ++ filter_seccomp.gen.test filter_seccomp-flag.gen.test \ ++ finit_module.gen.test flock.gen.test fork-f.gen.test \ ++ fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \ ++ fsopen.gen.test fspick.gen.test fspick-P.gen.test \ ++ fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ + fstat-Xverbose.gen.test fstat64.gen.test \ + fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \ + fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \ +@@ -6511,8 +6832,10 @@ + landlock_restrict_self-y.gen.test lchown.gen.test \ + lchown32.gen.test link.gen.test linkat.gen.test \ + linkat--secontext.gen.test linkat--secontext_full.gen.test \ +- lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \ +- madvise.gen.test maybe_switch_current_tcp.gen.test \ ++ linkat--secontext_full_mismatch.gen.test \ ++ linkat--secontext_mismatch.gen.test lookup_dcookie.gen.test \ ++ lstat.gen.test lstat64.gen.test madvise.gen.test \ ++ maybe_switch_current_tcp.gen.test \ + maybe_switch_current_tcp--quiet-thread-execve.gen.test \ + mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \ + mbind-Xverbose.gen.test membarrier.gen.test \ +@@ -6581,16 +6904,19 @@ + oldselect.gen.test oldselect-P.gen.test \ + oldselect-efault.gen.test oldselect-efault-P.gen.test \ + oldstat.gen.test open.gen.test open--secontext.gen.test \ +- open--secontext_full.gen.test open_tree.gen.test \ ++ open--secontext_full.gen.test \ ++ open--secontext_full_mismatch.gen.test \ ++ open--secontext_mismatch.gen.test open_tree.gen.test \ + open_tree-P.gen.test openat.gen.test \ + openat--secontext.gen.test openat--secontext_full.gen.test \ +- openat2.gen.test openat2-Xabbrev.gen.test \ +- openat2-Xraw.gen.test openat2-Xverbose.gen.test \ +- openat2-v.gen.test openat2-v-y.gen.test \ +- openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test \ +- openat2-v-y-Xverbose.gen.test openat2-y.gen.test \ +- orphaned_process_group.gen.test osf_utimes.gen.test \ +- pause.gen.test perf_event_open.gen.test \ ++ openat--secontext_full_mismatch.gen.test \ ++ openat--secontext_mismatch.gen.test openat2.gen.test \ ++ openat2-Xabbrev.gen.test openat2-Xraw.gen.test \ ++ openat2-Xverbose.gen.test openat2-v.gen.test \ ++ openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \ ++ openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \ ++ openat2-y.gen.test orphaned_process_group.gen.test \ ++ osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \ + perf_event_open_nonverbose.gen.test \ + perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \ + personality-Xraw.gen.test personality-Xverbose.gen.test \ +@@ -7154,6 +7480,14 @@ + @rm -f access--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(access__secontext_full_OBJECTS) $(access__secontext_full_LDADD) $(LIBS) + ++access--secontext_full_mismatch$(EXEEXT): $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_LDADD) $(LIBS) ++ ++access--secontext_mismatch$(EXEEXT): $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_LDADD) $(LIBS) ++ + acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) + @rm -f acct$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS) +@@ -7282,6 +7616,14 @@ + @rm -f chmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_OBJECTS) $(chmod__secontext_full_LDADD) $(LIBS) + ++chmod--secontext_full_mismatch$(EXEEXT): $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++chmod--secontext_mismatch$(EXEEXT): $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_LDADD) $(LIBS) ++ + chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) + @rm -f chown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS) +@@ -7526,6 +7868,14 @@ + @rm -f execve--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve__secontext_full_OBJECTS) $(execve__secontext_full_LDADD) $(LIBS) + ++execve--secontext_full_mismatch$(EXEEXT): $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execve--secontext_mismatch$(EXEEXT): $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_LDADD) $(LIBS) ++ + execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) + @rm -f execve-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS) +@@ -7542,6 +7892,14 @@ + @rm -f execveat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_OBJECTS) $(execveat__secontext_full_LDADD) $(LIBS) + ++execveat--secontext_full_mismatch$(EXEEXT): $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execveat--secontext_mismatch$(EXEEXT): $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_LDADD) $(LIBS) ++ + execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) + @rm -f execveat-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS) +@@ -7558,6 +7916,14 @@ + @rm -f faccessat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_OBJECTS) $(faccessat__secontext_full_LDADD) $(LIBS) + ++faccessat--secontext_full_mismatch$(EXEEXT): $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat--secontext_mismatch$(EXEEXT): $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) + @rm -f faccessat-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS) +@@ -7574,6 +7940,14 @@ + @rm -f faccessat-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_OBJECTS) $(faccessat_y__secontext_full_LDADD) $(LIBS) + ++faccessat-y--secontext_full_mismatch$(EXEEXT): $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat-y--secontext_mismatch$(EXEEXT): $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) + @rm -f faccessat-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS) +@@ -7622,6 +7996,14 @@ + @rm -f fanotify_mark--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_OBJECTS) $(fanotify_mark__secontext_full_LDADD) $(LIBS) + ++fanotify_mark--secontext_full_mismatch$(EXEEXT): $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fanotify_mark--secontext_mismatch$(EXEEXT): $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_LDADD) $(LIBS) ++ + fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES) + @rm -f fanotify_mark-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS) +@@ -7650,6 +8032,14 @@ + @rm -f fchmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_OBJECTS) $(fchmod__secontext_full_LDADD) $(LIBS) + ++fchmod--secontext_full_mismatch$(EXEEXT): $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod--secontext_mismatch$(EXEEXT): $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_LDADD) $(LIBS) ++ + fchmod-y$(EXEEXT): $(fchmod_y_OBJECTS) $(fchmod_y_DEPENDENCIES) $(EXTRA_fchmod_y_DEPENDENCIES) + @rm -f fchmod-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y_OBJECTS) $(fchmod_y_LDADD) $(LIBS) +@@ -7662,6 +8052,14 @@ + @rm -f fchmod-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_OBJECTS) $(fchmod_y__secontext_full_LDADD) $(LIBS) + ++fchmod-y--secontext_full_mismatch$(EXEEXT): $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod-y--secontext_mismatch$(EXEEXT): $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_LDADD) $(LIBS) ++ + fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) + @rm -f fchmodat$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS) +@@ -7674,6 +8072,14 @@ + @rm -f fchmodat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_OBJECTS) $(fchmodat__secontext_full_LDADD) $(LIBS) + ++fchmodat--secontext_full_mismatch$(EXEEXT): $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmodat--secontext_mismatch$(EXEEXT): $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_LDADD) $(LIBS) ++ + fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) + @rm -f fchown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS) +@@ -7694,6 +8100,14 @@ + @rm -f fchownat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_OBJECTS) $(fchownat__secontext_full_LDADD) $(LIBS) + ++fchownat--secontext_full_mismatch$(EXEEXT): $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchownat--secontext_mismatch$(EXEEXT): $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_LDADD) $(LIBS) ++ + fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) + @rm -f fcntl$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS) +@@ -7730,6 +8144,14 @@ + @rm -f file_handle--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_OBJECTS) $(file_handle__secontext_full_LDADD) $(LIBS) + ++file_handle--secontext_full_mismatch$(EXEEXT): $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_LDADD) $(LIBS) ++ ++file_handle--secontext_mismatch$(EXEEXT): $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_LDADD) $(LIBS) ++ + filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) + @rm -f filter-unavailable$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS) +@@ -8774,6 +9196,14 @@ + @rm -f linkat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_OBJECTS) $(linkat__secontext_full_LDADD) $(LIBS) + ++linkat--secontext_full_mismatch$(EXEEXT): $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++linkat--secontext_mismatch$(EXEEXT): $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_LDADD) $(LIBS) ++ + list_sigaction_signum$(EXEEXT): $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_DEPENDENCIES) $(EXTRA_list_sigaction_signum_DEPENDENCIES) + @rm -f list_sigaction_signum$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_LDADD) $(LIBS) +@@ -9422,6 +9852,14 @@ + @rm -f open--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open__secontext_full_OBJECTS) $(open__secontext_full_LDADD) $(LIBS) + ++open--secontext_full_mismatch$(EXEEXT): $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_LDADD) $(LIBS) ++ ++open--secontext_mismatch$(EXEEXT): $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_LDADD) $(LIBS) ++ + open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) + @rm -f open_tree$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS) +@@ -9442,6 +9880,14 @@ + @rm -f openat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat__secontext_full_OBJECTS) $(openat__secontext_full_LDADD) $(LIBS) + ++openat--secontext_full_mismatch$(EXEEXT): $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++openat--secontext_mismatch$(EXEEXT): $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_LDADD) $(LIBS) ++ + openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) + @rm -f openat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS) +@@ -10834,6 +11280,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept4.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acct.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@ # am--include-marker +@@ -10866,6 +11314,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sigign.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown32.Po@am__quote@ # am--include-marker +@@ -10927,17 +11377,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventfd.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker +@@ -10951,6 +11409,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@ # am--include-marker +@@ -10958,17 +11418,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker +@@ -10978,6 +11446,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker +@@ -11275,6 +11745,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/llseek.Po@am__quote@ # am--include-marker +@@ -11437,11 +11909,15 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker +@@ -13003,6 +13479,12 @@ + $(srcdir)/access--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/access--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/access--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13054,6 +13536,12 @@ + $(srcdir)/chmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/chmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/chmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13219,6 +13707,12 @@ + $(srcdir)/execve--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execve--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execve--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13228,6 +13722,12 @@ + $(srcdir)/execveat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execveat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execveat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13237,6 +13737,12 @@ + $(srcdir)/faccessat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13249,6 +13755,12 @@ + $(srcdir)/faccessat-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13279,6 +13791,12 @@ + $(srcdir)/fanotify_mark--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fanotify_mark--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fanotify_mark--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13300,6 +13818,12 @@ + $(srcdir)/fchmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmod-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13309,6 +13833,12 @@ + $(srcdir)/fchmod-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13318,6 +13848,12 @@ + $(srcdir)/fchmodat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmodat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmodat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13333,6 +13869,12 @@ + $(srcdir)/fchownat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchownat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchownat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13357,6 +13899,12 @@ + $(srcdir)/file_handle--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/file_handle--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/file_handle--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14116,6 +14664,12 @@ + $(srcdir)/linkat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/linkat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/linkat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14545,6 +15099,12 @@ + $(srcdir)/open--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/open--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/open--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14560,6 +15120,12 @@ + $(srcdir)/openat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/openat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/openat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +--- old/tests-m32/Makefile.in 2022-02-07 20:23:38.724063729 +0100 ++++ new/tests-m32/Makefile.in 2022-02-07 20:24:03.512063387 +0100 +@@ -614,25 +614,55 @@ + xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \ + xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT) + am__EXEEXT_2 = access--secontext$(EXEEXT) \ +- access--secontext_full$(EXEEXT) chmod--secontext$(EXEEXT) \ +- chmod--secontext_full$(EXEEXT) execve--secontext$(EXEEXT) \ +- execve--secontext_full$(EXEEXT) execveat--secontext$(EXEEXT) \ +- execveat--secontext_full$(EXEEXT) \ ++ access--secontext_full$(EXEEXT) \ ++ access--secontext_full_mismatch$(EXEEXT) \ ++ access--secontext_mismatch$(EXEEXT) chmod--secontext$(EXEEXT) \ ++ chmod--secontext_full$(EXEEXT) \ ++ chmod--secontext_full_mismatch$(EXEEXT) \ ++ chmod--secontext_mismatch$(EXEEXT) execve--secontext$(EXEEXT) \ ++ execve--secontext_full$(EXEEXT) \ ++ execve--secontext_full_mismatch$(EXEEXT) \ ++ execve--secontext_mismatch$(EXEEXT) \ ++ execveat--secontext$(EXEEXT) execveat--secontext_full$(EXEEXT) \ ++ execveat--secontext_full_mismatch$(EXEEXT) \ ++ execveat--secontext_mismatch$(EXEEXT) \ + faccessat--secontext$(EXEEXT) \ + faccessat--secontext_full$(EXEEXT) \ ++ faccessat--secontext_full_mismatch$(EXEEXT) \ ++ faccessat--secontext_mismatch$(EXEEXT) \ + faccessat-y--secontext$(EXEEXT) \ + faccessat-y--secontext_full$(EXEEXT) \ ++ faccessat-y--secontext_full_mismatch$(EXEEXT) \ ++ faccessat-y--secontext_mismatch$(EXEEXT) \ + fanotify_mark--secontext$(EXEEXT) \ + fanotify_mark--secontext_full$(EXEEXT) \ ++ fanotify_mark--secontext_full_mismatch$(EXEEXT) \ ++ fanotify_mark--secontext_mismatch$(EXEEXT) \ + fchmod--secontext$(EXEEXT) fchmod--secontext_full$(EXEEXT) \ ++ fchmod--secontext_full_mismatch$(EXEEXT) \ ++ fchmod--secontext_mismatch$(EXEEXT) \ + fchmod-y--secontext$(EXEEXT) fchmod-y--secontext_full$(EXEEXT) \ ++ fchmod-y--secontext_full_mismatch$(EXEEXT) \ ++ fchmod-y--secontext_mismatch$(EXEEXT) \ + fchmodat--secontext$(EXEEXT) fchmodat--secontext_full$(EXEEXT) \ ++ fchmodat--secontext_full_mismatch$(EXEEXT) \ ++ fchmodat--secontext_mismatch$(EXEEXT) \ + fchownat--secontext$(EXEEXT) fchownat--secontext_full$(EXEEXT) \ ++ fchownat--secontext_full_mismatch$(EXEEXT) \ ++ fchownat--secontext_mismatch$(EXEEXT) \ + file_handle--secontext$(EXEEXT) \ + file_handle--secontext_full$(EXEEXT) \ ++ file_handle--secontext_full_mismatch$(EXEEXT) \ ++ file_handle--secontext_mismatch$(EXEEXT) \ + linkat--secontext$(EXEEXT) linkat--secontext_full$(EXEEXT) \ +- open--secontext$(EXEEXT) open--secontext_full$(EXEEXT) \ +- openat--secontext$(EXEEXT) openat--secontext_full$(EXEEXT) ++ linkat--secontext_full_mismatch$(EXEEXT) \ ++ linkat--secontext_mismatch$(EXEEXT) open--secontext$(EXEEXT) \ ++ open--secontext_full$(EXEEXT) \ ++ open--secontext_full_mismatch$(EXEEXT) \ ++ open--secontext_mismatch$(EXEEXT) openat--secontext$(EXEEXT) \ ++ openat--secontext_full$(EXEEXT) \ ++ openat--secontext_full_mismatch$(EXEEXT) \ ++ openat--secontext_mismatch$(EXEEXT) + ARFLAGS = cru + AM_V_AR = $(am__v_AR_@AM_V@) + am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +@@ -662,6 +692,17 @@ + access__secontext_full_SOURCES = access--secontext_full.c + access__secontext_full_OBJECTS = access--secontext_full.$(OBJEXT) + access__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++access__secontext_full_mismatch_SOURCES = \ ++ access--secontext_full_mismatch.c ++access__secontext_full_mismatch_OBJECTS = \ ++ access--secontext_full_mismatch.$(OBJEXT) ++access__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++access__secontext_mismatch_SOURCES = access--secontext_mismatch.c ++access__secontext_mismatch_OBJECTS = \ ++ access--secontext_mismatch.$(OBJEXT) ++access__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + acct_SOURCES = acct.c + acct_OBJECTS = acct.$(OBJEXT) + acct_LDADD = $(LDADD) +@@ -790,6 +831,17 @@ + chmod__secontext_full_SOURCES = chmod--secontext_full.c + chmod__secontext_full_OBJECTS = chmod--secontext_full.$(OBJEXT) + chmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++chmod__secontext_full_mismatch_SOURCES = \ ++ chmod--secontext_full_mismatch.c ++chmod__secontext_full_mismatch_OBJECTS = \ ++ chmod--secontext_full_mismatch.$(OBJEXT) ++chmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++chmod__secontext_mismatch_SOURCES = chmod--secontext_mismatch.c ++chmod__secontext_mismatch_OBJECTS = \ ++ chmod--secontext_mismatch.$(OBJEXT) ++chmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + chown_SOURCES = chown.c + chown_OBJECTS = chown.$(OBJEXT) + chown_LDADD = $(LDADD) +@@ -1031,6 +1083,17 @@ + execve__secontext_full_SOURCES = execve--secontext_full.c + execve__secontext_full_OBJECTS = execve--secontext_full.$(OBJEXT) + execve__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execve__secontext_full_mismatch_SOURCES = \ ++ execve--secontext_full_mismatch.c ++execve__secontext_full_mismatch_OBJECTS = \ ++ execve--secontext_full_mismatch.$(OBJEXT) ++execve__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execve__secontext_mismatch_SOURCES = execve--secontext_mismatch.c ++execve__secontext_mismatch_OBJECTS = \ ++ execve--secontext_mismatch.$(OBJEXT) ++execve__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execve_v_SOURCES = execve-v.c + execve_v_OBJECTS = execve-v.$(OBJEXT) + execve_v_LDADD = $(LDADD) +@@ -1045,6 +1108,17 @@ + execveat__secontext_full_SOURCES = execveat--secontext_full.c + execveat__secontext_full_OBJECTS = execveat--secontext_full.$(OBJEXT) + execveat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execveat__secontext_full_mismatch_SOURCES = \ ++ execveat--secontext_full_mismatch.c ++execveat__secontext_full_mismatch_OBJECTS = \ ++ execveat--secontext_full_mismatch.$(OBJEXT) ++execveat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execveat__secontext_mismatch_SOURCES = execveat--secontext_mismatch.c ++execveat__secontext_mismatch_OBJECTS = \ ++ execveat--secontext_mismatch.$(OBJEXT) ++execveat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execveat_v_SOURCES = execveat-v.c + execveat_v_OBJECTS = execveat-v.$(OBJEXT) + execveat_v_LDADD = $(LDADD) +@@ -1061,6 +1135,18 @@ + faccessat--secontext_full.$(OBJEXT) + faccessat__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat__secontext_full_mismatch_SOURCES = \ ++ faccessat--secontext_full_mismatch.c ++faccessat__secontext_full_mismatch_OBJECTS = \ ++ faccessat--secontext_full_mismatch.$(OBJEXT) ++faccessat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat__secontext_mismatch_SOURCES = \ ++ faccessat--secontext_mismatch.c ++faccessat__secontext_mismatch_OBJECTS = \ ++ faccessat--secontext_mismatch.$(OBJEXT) ++faccessat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_P_SOURCES = faccessat-P.c + faccessat_P_OBJECTS = faccessat-P.$(OBJEXT) + faccessat_P_LDADD = $(LDADD) +@@ -1077,6 +1163,18 @@ + faccessat-y--secontext_full.$(OBJEXT) + faccessat_y__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat_y__secontext_full_mismatch_SOURCES = \ ++ faccessat-y--secontext_full_mismatch.c ++faccessat_y__secontext_full_mismatch_OBJECTS = \ ++ faccessat-y--secontext_full_mismatch.$(OBJEXT) ++faccessat_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat_y__secontext_mismatch_SOURCES = \ ++ faccessat-y--secontext_mismatch.c ++faccessat_y__secontext_mismatch_OBJECTS = \ ++ faccessat-y--secontext_mismatch.$(OBJEXT) ++faccessat_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_yy_SOURCES = faccessat-yy.c + faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT) + faccessat_yy_LDADD = $(LDADD) +@@ -1126,6 +1224,18 @@ + fanotify_mark--secontext_full.$(OBJEXT) + fanotify_mark__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_full_mismatch_SOURCES = \ ++ fanotify_mark--secontext_full_mismatch.c ++fanotify_mark__secontext_full_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_full_mismatch.$(OBJEXT) ++fanotify_mark__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_mismatch_SOURCES = \ ++ fanotify_mark--secontext_mismatch.c ++fanotify_mark__secontext_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_mismatch.$(OBJEXT) ++fanotify_mark__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c + fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT) + fanotify_mark_Xabbrev_LDADD = $(LDADD) +@@ -1152,6 +1262,17 @@ + fchmod__secontext_full_SOURCES = fchmod--secontext_full.c + fchmod__secontext_full_OBJECTS = fchmod--secontext_full.$(OBJEXT) + fchmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod__secontext_full_mismatch_SOURCES = \ ++ fchmod--secontext_full_mismatch.c ++fchmod__secontext_full_mismatch_OBJECTS = \ ++ fchmod--secontext_full_mismatch.$(OBJEXT) ++fchmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod__secontext_mismatch_SOURCES = fchmod--secontext_mismatch.c ++fchmod__secontext_mismatch_OBJECTS = \ ++ fchmod--secontext_mismatch.$(OBJEXT) ++fchmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmod_y_SOURCES = fchmod-y.c + fchmod_y_OBJECTS = fchmod-y.$(OBJEXT) + fchmod_y_LDADD = $(LDADD) +@@ -1162,6 +1283,17 @@ + fchmod_y__secontext_full_SOURCES = fchmod-y--secontext_full.c + fchmod_y__secontext_full_OBJECTS = fchmod-y--secontext_full.$(OBJEXT) + fchmod_y__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod_y__secontext_full_mismatch_SOURCES = \ ++ fchmod-y--secontext_full_mismatch.c ++fchmod_y__secontext_full_mismatch_OBJECTS = \ ++ fchmod-y--secontext_full_mismatch.$(OBJEXT) ++fchmod_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod_y__secontext_mismatch_SOURCES = fchmod-y--secontext_mismatch.c ++fchmod_y__secontext_mismatch_OBJECTS = \ ++ fchmod-y--secontext_mismatch.$(OBJEXT) ++fchmod_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmodat_SOURCES = fchmodat.c + fchmodat_OBJECTS = fchmodat.$(OBJEXT) + fchmodat_LDADD = $(LDADD) +@@ -1172,6 +1304,17 @@ + fchmodat__secontext_full_SOURCES = fchmodat--secontext_full.c + fchmodat__secontext_full_OBJECTS = fchmodat--secontext_full.$(OBJEXT) + fchmodat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmodat__secontext_full_mismatch_SOURCES = \ ++ fchmodat--secontext_full_mismatch.c ++fchmodat__secontext_full_mismatch_OBJECTS = \ ++ fchmodat--secontext_full_mismatch.$(OBJEXT) ++fchmodat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmodat__secontext_mismatch_SOURCES = fchmodat--secontext_mismatch.c ++fchmodat__secontext_mismatch_OBJECTS = \ ++ fchmodat--secontext_mismatch.$(OBJEXT) ++fchmodat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchown_SOURCES = fchown.c + fchown_OBJECTS = fchown.$(OBJEXT) + fchown_LDADD = $(LDADD) +@@ -1190,6 +1333,17 @@ + fchownat__secontext_full_SOURCES = fchownat--secontext_full.c + fchownat__secontext_full_OBJECTS = fchownat--secontext_full.$(OBJEXT) + fchownat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchownat__secontext_full_mismatch_SOURCES = \ ++ fchownat--secontext_full_mismatch.c ++fchownat__secontext_full_mismatch_OBJECTS = \ ++ fchownat--secontext_full_mismatch.$(OBJEXT) ++fchownat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchownat__secontext_mismatch_SOURCES = fchownat--secontext_mismatch.c ++fchownat__secontext_mismatch_OBJECTS = \ ++ fchownat--secontext_mismatch.$(OBJEXT) ++fchownat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fcntl_SOURCES = fcntl.c + fcntl_OBJECTS = fcntl.$(OBJEXT) + fcntl_LDADD = $(LDADD) +@@ -1227,6 +1381,18 @@ + file_handle--secontext_full.$(OBJEXT) + file_handle__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++file_handle__secontext_full_mismatch_SOURCES = \ ++ file_handle--secontext_full_mismatch.c ++file_handle__secontext_full_mismatch_OBJECTS = \ ++ file_handle--secontext_full_mismatch.$(OBJEXT) ++file_handle__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++file_handle__secontext_mismatch_SOURCES = \ ++ file_handle--secontext_mismatch.c ++file_handle__secontext_mismatch_OBJECTS = \ ++ file_handle--secontext_mismatch.$(OBJEXT) ++file_handle__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + filter_unavailable_SOURCES = filter-unavailable.c + filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT) + filter_unavailable_DEPENDENCIES = $(LDADD) +@@ -2318,6 +2484,17 @@ + linkat__secontext_full_SOURCES = linkat--secontext_full.c + linkat__secontext_full_OBJECTS = linkat--secontext_full.$(OBJEXT) + linkat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++linkat__secontext_full_mismatch_SOURCES = \ ++ linkat--secontext_full_mismatch.c ++linkat__secontext_full_mismatch_OBJECTS = \ ++ linkat--secontext_full_mismatch.$(OBJEXT) ++linkat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++linkat__secontext_mismatch_SOURCES = linkat--secontext_mismatch.c ++linkat__secontext_mismatch_OBJECTS = \ ++ linkat--secontext_mismatch.$(OBJEXT) ++linkat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + list_sigaction_signum_SOURCES = list_sigaction_signum.c + list_sigaction_signum_OBJECTS = list_sigaction_signum.$(OBJEXT) + list_sigaction_signum_LDADD = $(LDADD) +@@ -2976,6 +3153,15 @@ + open__secontext_full_SOURCES = open--secontext_full.c + open__secontext_full_OBJECTS = open--secontext_full.$(OBJEXT) + open__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++open__secontext_full_mismatch_SOURCES = \ ++ open--secontext_full_mismatch.c ++open__secontext_full_mismatch_OBJECTS = \ ++ open--secontext_full_mismatch.$(OBJEXT) ++open__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++open__secontext_mismatch_SOURCES = open--secontext_mismatch.c ++open__secontext_mismatch_OBJECTS = open--secontext_mismatch.$(OBJEXT) ++open__secontext_mismatch_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) + open_tree_SOURCES = open_tree.c + open_tree_OBJECTS = open_tree.$(OBJEXT) + open_tree_LDADD = $(LDADD) +@@ -2994,6 +3180,17 @@ + openat__secontext_full_SOURCES = openat--secontext_full.c + openat__secontext_full_OBJECTS = openat--secontext_full.$(OBJEXT) + openat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++openat__secontext_full_mismatch_SOURCES = \ ++ openat--secontext_full_mismatch.c ++openat__secontext_full_mismatch_OBJECTS = \ ++ openat--secontext_full_mismatch.$(OBJEXT) ++openat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++openat__secontext_mismatch_SOURCES = openat--secontext_mismatch.c ++openat__secontext_mismatch_OBJECTS = \ ++ openat--secontext_mismatch.$(OBJEXT) ++openat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + openat2_SOURCES = openat2.c + openat2_OBJECTS = openat2.$(OBJEXT) + openat2_LDADD = $(LDADD) +@@ -4449,6 +4646,8 @@ + ./$(DEPDIR)/_newselect.Po ./$(DEPDIR)/accept.Po \ + ./$(DEPDIR)/accept4.Po ./$(DEPDIR)/access--secontext.Po \ + ./$(DEPDIR)/access--secontext_full.Po ./$(DEPDIR)/access.Po \ ++ ./$(DEPDIR)/access--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/access--secontext_mismatch.Po \ + ./$(DEPDIR)/acct.Po ./$(DEPDIR)/add_key.Po \ + ./$(DEPDIR)/adjtimex.Po ./$(DEPDIR)/aio.Po \ + ./$(DEPDIR)/aio_pgetevents.Po ./$(DEPDIR)/alarm.Po \ +@@ -4468,6 +4667,8 @@ + ./$(DEPDIR)/chdir.Po ./$(DEPDIR)/check_sigblock.Po \ + ./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod--secontext.Po \ + ./$(DEPDIR)/chmod--secontext_full.Po ./$(DEPDIR)/chmod.Po \ ++ ./$(DEPDIR)/chmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/chmod--secontext_mismatch.Po \ + ./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \ + ./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \ + ./$(DEPDIR)/clock_adjtime64.Po ./$(DEPDIR)/clock_nanosleep.Po \ +@@ -4503,14 +4704,22 @@ + ./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \ + ./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve--secontext.Po \ + ./$(DEPDIR)/execve--secontext_full.Po ./$(DEPDIR)/execve-v.Po \ ++ ./$(DEPDIR)/execve--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execve--secontext_mismatch.Po \ + ./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat--secontext.Po \ + ./$(DEPDIR)/execveat--secontext_full.Po \ ++ ./$(DEPDIR)/execveat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execveat--secontext_mismatch.Po \ + ./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \ + ./$(DEPDIR)/faccessat--secontext.Po \ + ./$(DEPDIR)/faccessat--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-P.Po \ + ./$(DEPDIR)/faccessat-y--secontext.Po \ + ./$(DEPDIR)/faccessat-y--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-y.Po ./$(DEPDIR)/faccessat-yy.Po \ + ./$(DEPDIR)/faccessat.Po ./$(DEPDIR)/faccessat2-P.Po \ + ./$(DEPDIR)/faccessat2-y.Po ./$(DEPDIR)/faccessat2-yy.Po \ +@@ -4519,26 +4728,38 @@ + ./$(DEPDIR)/fanotify_init.Po \ + ./$(DEPDIR)/fanotify_mark--secontext.Po \ + ./$(DEPDIR)/fanotify_mark--secontext_full.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po \ + ./$(DEPDIR)/fanotify_mark-Xabbrev.Po \ + ./$(DEPDIR)/fanotify_mark-Xraw.Po \ + ./$(DEPDIR)/fanotify_mark-Xverbose.Po \ + ./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \ + ./$(DEPDIR)/fchmod--secontext.Po \ + ./$(DEPDIR)/fchmod--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y--secontext.Po \ + ./$(DEPDIR)/fchmod-y--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y.Po ./$(DEPDIR)/fchmod.Po \ + ./$(DEPDIR)/fchmodat--secontext.Po \ + ./$(DEPDIR)/fchmodat--secontext_full.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmodat.Po ./$(DEPDIR)/fchown.Po \ + ./$(DEPDIR)/fchown32.Po ./$(DEPDIR)/fchownat--secontext.Po \ + ./$(DEPDIR)/fchownat--secontext_full.Po \ ++ ./$(DEPDIR)/fchownat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchownat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchownat.Po \ + ./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fcntl64--pidns-translation.Po \ + ./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \ + ./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle--secontext.Po \ + ./$(DEPDIR)/file_handle--secontext_full.Po \ ++ ./$(DEPDIR)/file_handle--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/file_handle--secontext_mismatch.Po \ + ./$(DEPDIR)/file_handle.Po ./$(DEPDIR)/filter-unavailable.Po \ + ./$(DEPDIR)/filter_seccomp-flag.Po \ + ./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \ +@@ -4753,6 +4972,8 @@ + ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \ + ./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat--secontext.Po \ + ./$(DEPDIR)/linkat--secontext_full.Po ./$(DEPDIR)/linkat.Po \ ++ ./$(DEPDIR)/linkat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/linkat--secontext_mismatch.Po \ + ./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \ + ./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \ + ./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \ +@@ -4867,9 +5088,13 @@ + ./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \ + ./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open--secontext.Po \ + ./$(DEPDIR)/open--secontext_full.Po ./$(DEPDIR)/open.Po \ ++ ./$(DEPDIR)/open--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/open--secontext_mismatch.Po \ + ./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \ + ./$(DEPDIR)/openat--secontext.Po \ + ./$(DEPDIR)/openat--secontext_full.Po ./$(DEPDIR)/openat.Po \ ++ ./$(DEPDIR)/openat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/openat--secontext_mismatch.Po \ + ./$(DEPDIR)/openat2-Xabbrev.Po ./$(DEPDIR)/openat2-Xraw.Po \ + ./$(DEPDIR)/openat2-Xverbose.Po \ + ./$(DEPDIR)/openat2-v-y-Xabbrev.Po \ +@@ -5119,7 +5316,8 @@ + am__v_CCLD_1 = + SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ + accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4468,7 +4666,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4484,24 +4683,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4588,6 +4803,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4641,8 +4857,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -4753,7 +4971,8 @@ + xetpriority--pidns-translation.c xettimeofday.c zeroargc.c + DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ + accept.c accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4762,7 +4981,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4778,24 +4998,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4882,6 +5118,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4935,8 +5172,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -6212,66 +6451,126 @@ + secontext_EXECUTABLES = \ + access--secontext \ + access--secontext_full \ ++ access--secontext_full_mismatch \ ++ access--secontext_mismatch \ + chmod--secontext \ + chmod--secontext_full \ ++ chmod--secontext_full_mismatch \ ++ chmod--secontext_mismatch \ + execve--secontext \ + execve--secontext_full \ ++ execve--secontext_full_mismatch \ ++ execve--secontext_mismatch \ + execveat--secontext \ + execveat--secontext_full \ ++ execveat--secontext_full_mismatch \ ++ execveat--secontext_mismatch \ + faccessat--secontext \ + faccessat--secontext_full \ ++ faccessat--secontext_full_mismatch \ ++ faccessat--secontext_mismatch \ + faccessat-y--secontext \ + faccessat-y--secontext_full \ ++ faccessat-y--secontext_full_mismatch \ ++ faccessat-y--secontext_mismatch \ + fanotify_mark--secontext \ + fanotify_mark--secontext_full \ ++ fanotify_mark--secontext_full_mismatch \ ++ fanotify_mark--secontext_mismatch \ + fchmod--secontext \ + fchmod--secontext_full \ ++ fchmod--secontext_full_mismatch \ ++ fchmod--secontext_mismatch \ + fchmod-y--secontext \ + fchmod-y--secontext_full \ ++ fchmod-y--secontext_full_mismatch \ ++ fchmod-y--secontext_mismatch \ + fchmodat--secontext \ + fchmodat--secontext_full \ ++ fchmodat--secontext_full_mismatch \ ++ fchmodat--secontext_mismatch \ + fchownat--secontext \ + fchownat--secontext_full \ ++ fchownat--secontext_full_mismatch \ ++ fchownat--secontext_mismatch \ + file_handle--secontext \ + file_handle--secontext_full \ ++ file_handle--secontext_full_mismatch \ ++ file_handle--secontext_mismatch \ + linkat--secontext \ + linkat--secontext_full \ ++ linkat--secontext_full_mismatch \ ++ linkat--secontext_mismatch \ + open--secontext \ + open--secontext_full \ ++ open--secontext_full_mismatch \ ++ open--secontext_mismatch \ + openat--secontext \ + openat--secontext_full \ ++ openat--secontext_full_mismatch \ ++ openat--secontext_mismatch \ + # + + access__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + access__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + attach_f_p_LDADD = -lpthread $(LDADD) + count_f_LDADD = -lpthread $(LDADD) + delay_LDADD = $(clock_LIBS) $(LDADD) +@@ -6325,15 +6624,20 @@ + # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. + GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ + accept4.gen.test access.gen.test access--secontext.gen.test \ +- access--secontext_full.gen.test acct.gen.test add_key.gen.test \ +- adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test \ +- alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test \ ++ access--secontext_full.gen.test \ ++ access--secontext_full_mismatch.gen.test \ ++ access--secontext_mismatch.gen.test acct.gen.test \ ++ add_key.gen.test adjtimex.gen.test aio.gen.test \ ++ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \ ++ bpf-obj_get_info_by_fd.gen.test \ + bpf-obj_get_info_by_fd-prog.gen.test \ + bpf-obj_get_info_by_fd-prog-v.gen.test \ + bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test \ + btrfs.gen.test chdir.gen.test chmod.gen.test \ + chmod--secontext.gen.test chmod--secontext_full.gen.test \ +- chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test \ ++ chmod--secontext_full_mismatch.gen.test \ ++ chmod--secontext_mismatch.gen.test chown.gen.test \ ++ chown32.gen.test chroot.gen.test clock.gen.test \ + clock_adjtime.gen.test clock_adjtime64.gen.test \ + clock_nanosleep.gen.test clock_xettime.gen.test \ + clock_xettime64.gen.test clone3.gen.test \ +@@ -6356,36 +6660,53 @@ + epoll_pwait2-P.gen.test epoll_pwait2-y.gen.test \ + epoll_wait.gen.test erestartsys.gen.test \ + execve--secontext.gen.test execve--secontext_full.gen.test \ +- execveat.gen.test execveat--secontext.gen.test \ +- execveat--secontext_full.gen.test execveat-v.gen.test \ ++ execve--secontext_full_mismatch.gen.test \ ++ execve--secontext_mismatch.gen.test execveat.gen.test \ ++ execveat--secontext.gen.test execveat--secontext_full.gen.test \ ++ execveat--secontext_full_mismatch.gen.test \ ++ execveat--secontext_mismatch.gen.test execveat-v.gen.test \ + faccessat--secontext.gen.test \ +- faccessat--secontext_full.gen.test faccessat-P.gen.test \ ++ faccessat--secontext_full.gen.test \ ++ faccessat--secontext_full_mismatch.gen.test \ ++ faccessat--secontext_mismatch.gen.test faccessat-P.gen.test \ + faccessat-y.gen.test faccessat-y--secontext.gen.test \ +- faccessat-y--secontext_full.gen.test faccessat-yy.gen.test \ ++ faccessat-y--secontext_full.gen.test \ ++ faccessat-y--secontext_full_mismatch.gen.test \ ++ faccessat-y--secontext_mismatch.gen.test faccessat-yy.gen.test \ + faccessat2-P.gen.test faccessat2-y.gen.test \ + faccessat2-yy.gen.test fadvise64_64.gen.test \ + fallocate.gen.test fanotify_init.gen.test \ + fanotify_mark.gen.test fanotify_mark--secontext.gen.test \ + fanotify_mark--secontext_full.gen.test \ ++ fanotify_mark--secontext_full_mismatch.gen.test \ ++ fanotify_mark--secontext_mismatch.gen.test \ + fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \ + fanotify_mark-Xverbose.gen.test fchdir.gen.test \ + fchmod.gen.test fchmod--secontext.gen.test \ +- fchmod--secontext_full.gen.test fchmod-y.gen.test \ ++ fchmod--secontext_full.gen.test \ ++ fchmod--secontext_full_mismatch.gen.test \ ++ fchmod--secontext_mismatch.gen.test fchmod-y.gen.test \ + fchmod-y--secontext.gen.test fchmod-y--secontext_full.gen.test \ +- fchmodat.gen.test fchmodat--secontext.gen.test \ +- fchmodat--secontext_full.gen.test fchown.gen.test \ ++ fchmod-y--secontext_full_mismatch.gen.test \ ++ fchmod-y--secontext_mismatch.gen.test fchmodat.gen.test \ ++ fchmodat--secontext.gen.test fchmodat--secontext_full.gen.test \ ++ fchmodat--secontext_full_mismatch.gen.test \ ++ fchmodat--secontext_mismatch.gen.test fchown.gen.test \ + fchown32.gen.test fchownat.gen.test \ + fchownat--secontext.gen.test fchownat--secontext_full.gen.test \ +- fcntl.gen.test fcntl--pidns-translation.gen.test \ +- fcntl64.gen.test fcntl64--pidns-translation.gen.test \ +- fdatasync.gen.test file_handle.gen.test \ +- file_handle--secontext.gen.test \ +- file_handle--secontext_full.gen.test filter_seccomp.gen.test \ +- filter_seccomp-flag.gen.test finit_module.gen.test \ +- flock.gen.test fork-f.gen.test fsconfig.gen.test \ +- fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test \ +- fspick.gen.test fspick-P.gen.test fstat.gen.test \ +- fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ ++ fchownat--secontext_full_mismatch.gen.test \ ++ fchownat--secontext_mismatch.gen.test fcntl.gen.test \ ++ fcntl--pidns-translation.gen.test fcntl64.gen.test \ ++ fcntl64--pidns-translation.gen.test fdatasync.gen.test \ ++ file_handle.gen.test file_handle--secontext.gen.test \ ++ file_handle--secontext_full.gen.test \ ++ file_handle--secontext_full_mismatch.gen.test \ ++ file_handle--secontext_mismatch.gen.test \ ++ filter_seccomp.gen.test filter_seccomp-flag.gen.test \ ++ finit_module.gen.test flock.gen.test fork-f.gen.test \ ++ fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \ ++ fsopen.gen.test fspick.gen.test fspick-P.gen.test \ ++ fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ + fstat-Xverbose.gen.test fstat64.gen.test \ + fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \ + fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \ +@@ -6512,8 +6833,10 @@ + landlock_restrict_self-y.gen.test lchown.gen.test \ + lchown32.gen.test link.gen.test linkat.gen.test \ + linkat--secontext.gen.test linkat--secontext_full.gen.test \ +- lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \ +- madvise.gen.test maybe_switch_current_tcp.gen.test \ ++ linkat--secontext_full_mismatch.gen.test \ ++ linkat--secontext_mismatch.gen.test lookup_dcookie.gen.test \ ++ lstat.gen.test lstat64.gen.test madvise.gen.test \ ++ maybe_switch_current_tcp.gen.test \ + maybe_switch_current_tcp--quiet-thread-execve.gen.test \ + mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \ + mbind-Xverbose.gen.test membarrier.gen.test \ +@@ -6582,16 +6905,19 @@ + oldselect.gen.test oldselect-P.gen.test \ + oldselect-efault.gen.test oldselect-efault-P.gen.test \ + oldstat.gen.test open.gen.test open--secontext.gen.test \ +- open--secontext_full.gen.test open_tree.gen.test \ ++ open--secontext_full.gen.test \ ++ open--secontext_full_mismatch.gen.test \ ++ open--secontext_mismatch.gen.test open_tree.gen.test \ + open_tree-P.gen.test openat.gen.test \ + openat--secontext.gen.test openat--secontext_full.gen.test \ +- openat2.gen.test openat2-Xabbrev.gen.test \ +- openat2-Xraw.gen.test openat2-Xverbose.gen.test \ +- openat2-v.gen.test openat2-v-y.gen.test \ +- openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test \ +- openat2-v-y-Xverbose.gen.test openat2-y.gen.test \ +- orphaned_process_group.gen.test osf_utimes.gen.test \ +- pause.gen.test perf_event_open.gen.test \ ++ openat--secontext_full_mismatch.gen.test \ ++ openat--secontext_mismatch.gen.test openat2.gen.test \ ++ openat2-Xabbrev.gen.test openat2-Xraw.gen.test \ ++ openat2-Xverbose.gen.test openat2-v.gen.test \ ++ openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \ ++ openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \ ++ openat2-y.gen.test orphaned_process_group.gen.test \ ++ osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \ + perf_event_open_nonverbose.gen.test \ + perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \ + personality-Xraw.gen.test personality-Xverbose.gen.test \ +@@ -7155,6 +7481,14 @@ + @rm -f access--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(access__secontext_full_OBJECTS) $(access__secontext_full_LDADD) $(LIBS) + ++access--secontext_full_mismatch$(EXEEXT): $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_LDADD) $(LIBS) ++ ++access--secontext_mismatch$(EXEEXT): $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_LDADD) $(LIBS) ++ + acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) + @rm -f acct$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS) +@@ -7283,6 +7617,14 @@ + @rm -f chmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_OBJECTS) $(chmod__secontext_full_LDADD) $(LIBS) + ++chmod--secontext_full_mismatch$(EXEEXT): $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++chmod--secontext_mismatch$(EXEEXT): $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_LDADD) $(LIBS) ++ + chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) + @rm -f chown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS) +@@ -7527,6 +7869,14 @@ + @rm -f execve--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve__secontext_full_OBJECTS) $(execve__secontext_full_LDADD) $(LIBS) + ++execve--secontext_full_mismatch$(EXEEXT): $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execve--secontext_mismatch$(EXEEXT): $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_LDADD) $(LIBS) ++ + execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) + @rm -f execve-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS) +@@ -7543,6 +7893,14 @@ + @rm -f execveat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_OBJECTS) $(execveat__secontext_full_LDADD) $(LIBS) + ++execveat--secontext_full_mismatch$(EXEEXT): $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execveat--secontext_mismatch$(EXEEXT): $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_LDADD) $(LIBS) ++ + execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) + @rm -f execveat-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS) +@@ -7559,6 +7917,14 @@ + @rm -f faccessat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_OBJECTS) $(faccessat__secontext_full_LDADD) $(LIBS) + ++faccessat--secontext_full_mismatch$(EXEEXT): $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat--secontext_mismatch$(EXEEXT): $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) + @rm -f faccessat-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS) +@@ -7575,6 +7941,14 @@ + @rm -f faccessat-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_OBJECTS) $(faccessat_y__secontext_full_LDADD) $(LIBS) + ++faccessat-y--secontext_full_mismatch$(EXEEXT): $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat-y--secontext_mismatch$(EXEEXT): $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) + @rm -f faccessat-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS) +@@ -7623,6 +7997,14 @@ + @rm -f fanotify_mark--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_OBJECTS) $(fanotify_mark__secontext_full_LDADD) $(LIBS) + ++fanotify_mark--secontext_full_mismatch$(EXEEXT): $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fanotify_mark--secontext_mismatch$(EXEEXT): $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_LDADD) $(LIBS) ++ + fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES) + @rm -f fanotify_mark-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS) +@@ -7651,6 +8033,14 @@ + @rm -f fchmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_OBJECTS) $(fchmod__secontext_full_LDADD) $(LIBS) + ++fchmod--secontext_full_mismatch$(EXEEXT): $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod--secontext_mismatch$(EXEEXT): $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_LDADD) $(LIBS) ++ + fchmod-y$(EXEEXT): $(fchmod_y_OBJECTS) $(fchmod_y_DEPENDENCIES) $(EXTRA_fchmod_y_DEPENDENCIES) + @rm -f fchmod-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y_OBJECTS) $(fchmod_y_LDADD) $(LIBS) +@@ -7663,6 +8053,14 @@ + @rm -f fchmod-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_OBJECTS) $(fchmod_y__secontext_full_LDADD) $(LIBS) + ++fchmod-y--secontext_full_mismatch$(EXEEXT): $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod-y--secontext_mismatch$(EXEEXT): $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_LDADD) $(LIBS) ++ + fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) + @rm -f fchmodat$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS) +@@ -7675,6 +8073,14 @@ + @rm -f fchmodat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_OBJECTS) $(fchmodat__secontext_full_LDADD) $(LIBS) + ++fchmodat--secontext_full_mismatch$(EXEEXT): $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmodat--secontext_mismatch$(EXEEXT): $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_LDADD) $(LIBS) ++ + fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) + @rm -f fchown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS) +@@ -7695,6 +8101,14 @@ + @rm -f fchownat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_OBJECTS) $(fchownat__secontext_full_LDADD) $(LIBS) + ++fchownat--secontext_full_mismatch$(EXEEXT): $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchownat--secontext_mismatch$(EXEEXT): $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_LDADD) $(LIBS) ++ + fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) + @rm -f fcntl$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS) +@@ -7731,6 +8145,14 @@ + @rm -f file_handle--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_OBJECTS) $(file_handle__secontext_full_LDADD) $(LIBS) + ++file_handle--secontext_full_mismatch$(EXEEXT): $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_LDADD) $(LIBS) ++ ++file_handle--secontext_mismatch$(EXEEXT): $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_LDADD) $(LIBS) ++ + filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) + @rm -f filter-unavailable$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS) +@@ -8775,6 +9197,14 @@ + @rm -f linkat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_OBJECTS) $(linkat__secontext_full_LDADD) $(LIBS) + ++linkat--secontext_full_mismatch$(EXEEXT): $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++linkat--secontext_mismatch$(EXEEXT): $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_LDADD) $(LIBS) ++ + list_sigaction_signum$(EXEEXT): $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_DEPENDENCIES) $(EXTRA_list_sigaction_signum_DEPENDENCIES) + @rm -f list_sigaction_signum$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_LDADD) $(LIBS) +@@ -9423,6 +9853,14 @@ + @rm -f open--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open__secontext_full_OBJECTS) $(open__secontext_full_LDADD) $(LIBS) + ++open--secontext_full_mismatch$(EXEEXT): $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_LDADD) $(LIBS) ++ ++open--secontext_mismatch$(EXEEXT): $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_LDADD) $(LIBS) ++ + open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) + @rm -f open_tree$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS) +@@ -9443,6 +9881,14 @@ + @rm -f openat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat__secontext_full_OBJECTS) $(openat__secontext_full_LDADD) $(LIBS) + ++openat--secontext_full_mismatch$(EXEEXT): $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++openat--secontext_mismatch$(EXEEXT): $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_LDADD) $(LIBS) ++ + openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) + @rm -f openat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS) +@@ -10835,6 +11281,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept4.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acct.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@ # am--include-marker +@@ -10867,6 +11315,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sigign.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown32.Po@am__quote@ # am--include-marker +@@ -10928,17 +11378,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventfd.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker +@@ -10952,6 +11410,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@ # am--include-marker +@@ -10959,17 +11419,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker +@@ -10979,6 +11447,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker +@@ -11276,6 +11746,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/llseek.Po@am__quote@ # am--include-marker +@@ -11438,11 +11910,15 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker +@@ -13004,6 +13480,12 @@ + $(srcdir)/access--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/access--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/access--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13055,6 +13537,12 @@ + $(srcdir)/chmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/chmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/chmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13220,6 +13708,12 @@ + $(srcdir)/execve--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execve--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execve--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13229,6 +13723,12 @@ + $(srcdir)/execveat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execveat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execveat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13238,6 +13738,12 @@ + $(srcdir)/faccessat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13250,6 +13756,12 @@ + $(srcdir)/faccessat-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13280,6 +13792,12 @@ + $(srcdir)/fanotify_mark--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fanotify_mark--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fanotify_mark--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13301,6 +13819,12 @@ + $(srcdir)/fchmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmod-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13310,6 +13834,12 @@ + $(srcdir)/fchmod-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13319,6 +13849,12 @@ + $(srcdir)/fchmodat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmodat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmodat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13334,6 +13870,12 @@ + $(srcdir)/fchownat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchownat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchownat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13358,6 +13900,12 @@ + $(srcdir)/file_handle--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/file_handle--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/file_handle--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14117,6 +14665,12 @@ + $(srcdir)/linkat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/linkat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/linkat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14546,6 +15100,12 @@ + $(srcdir)/open--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/open--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/open--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14561,6 +15121,12 @@ + $(srcdir)/openat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/openat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/openat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +--- old/tests-mx32/Makefile.in 2022-02-07 20:23:38.728063729 +0100 ++++ new/tests-mx32/Makefile.in 2022-02-07 20:24:04.572063372 +0100 +@@ -614,25 +614,55 @@ + xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \ + xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT) + am__EXEEXT_2 = access--secontext$(EXEEXT) \ +- access--secontext_full$(EXEEXT) chmod--secontext$(EXEEXT) \ +- chmod--secontext_full$(EXEEXT) execve--secontext$(EXEEXT) \ +- execve--secontext_full$(EXEEXT) execveat--secontext$(EXEEXT) \ +- execveat--secontext_full$(EXEEXT) \ ++ access--secontext_full$(EXEEXT) \ ++ access--secontext_full_mismatch$(EXEEXT) \ ++ access--secontext_mismatch$(EXEEXT) chmod--secontext$(EXEEXT) \ ++ chmod--secontext_full$(EXEEXT) \ ++ chmod--secontext_full_mismatch$(EXEEXT) \ ++ chmod--secontext_mismatch$(EXEEXT) execve--secontext$(EXEEXT) \ ++ execve--secontext_full$(EXEEXT) \ ++ execve--secontext_full_mismatch$(EXEEXT) \ ++ execve--secontext_mismatch$(EXEEXT) \ ++ execveat--secontext$(EXEEXT) execveat--secontext_full$(EXEEXT) \ ++ execveat--secontext_full_mismatch$(EXEEXT) \ ++ execveat--secontext_mismatch$(EXEEXT) \ + faccessat--secontext$(EXEEXT) \ + faccessat--secontext_full$(EXEEXT) \ ++ faccessat--secontext_full_mismatch$(EXEEXT) \ ++ faccessat--secontext_mismatch$(EXEEXT) \ + faccessat-y--secontext$(EXEEXT) \ + faccessat-y--secontext_full$(EXEEXT) \ ++ faccessat-y--secontext_full_mismatch$(EXEEXT) \ ++ faccessat-y--secontext_mismatch$(EXEEXT) \ + fanotify_mark--secontext$(EXEEXT) \ + fanotify_mark--secontext_full$(EXEEXT) \ ++ fanotify_mark--secontext_full_mismatch$(EXEEXT) \ ++ fanotify_mark--secontext_mismatch$(EXEEXT) \ + fchmod--secontext$(EXEEXT) fchmod--secontext_full$(EXEEXT) \ ++ fchmod--secontext_full_mismatch$(EXEEXT) \ ++ fchmod--secontext_mismatch$(EXEEXT) \ + fchmod-y--secontext$(EXEEXT) fchmod-y--secontext_full$(EXEEXT) \ ++ fchmod-y--secontext_full_mismatch$(EXEEXT) \ ++ fchmod-y--secontext_mismatch$(EXEEXT) \ + fchmodat--secontext$(EXEEXT) fchmodat--secontext_full$(EXEEXT) \ ++ fchmodat--secontext_full_mismatch$(EXEEXT) \ ++ fchmodat--secontext_mismatch$(EXEEXT) \ + fchownat--secontext$(EXEEXT) fchownat--secontext_full$(EXEEXT) \ ++ fchownat--secontext_full_mismatch$(EXEEXT) \ ++ fchownat--secontext_mismatch$(EXEEXT) \ + file_handle--secontext$(EXEEXT) \ + file_handle--secontext_full$(EXEEXT) \ ++ file_handle--secontext_full_mismatch$(EXEEXT) \ ++ file_handle--secontext_mismatch$(EXEEXT) \ + linkat--secontext$(EXEEXT) linkat--secontext_full$(EXEEXT) \ +- open--secontext$(EXEEXT) open--secontext_full$(EXEEXT) \ +- openat--secontext$(EXEEXT) openat--secontext_full$(EXEEXT) ++ linkat--secontext_full_mismatch$(EXEEXT) \ ++ linkat--secontext_mismatch$(EXEEXT) open--secontext$(EXEEXT) \ ++ open--secontext_full$(EXEEXT) \ ++ open--secontext_full_mismatch$(EXEEXT) \ ++ open--secontext_mismatch$(EXEEXT) openat--secontext$(EXEEXT) \ ++ openat--secontext_full$(EXEEXT) \ ++ openat--secontext_full_mismatch$(EXEEXT) \ ++ openat--secontext_mismatch$(EXEEXT) + ARFLAGS = cru + AM_V_AR = $(am__v_AR_@AM_V@) + am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +@@ -662,6 +692,17 @@ + access__secontext_full_SOURCES = access--secontext_full.c + access__secontext_full_OBJECTS = access--secontext_full.$(OBJEXT) + access__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++access__secontext_full_mismatch_SOURCES = \ ++ access--secontext_full_mismatch.c ++access__secontext_full_mismatch_OBJECTS = \ ++ access--secontext_full_mismatch.$(OBJEXT) ++access__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++access__secontext_mismatch_SOURCES = access--secontext_mismatch.c ++access__secontext_mismatch_OBJECTS = \ ++ access--secontext_mismatch.$(OBJEXT) ++access__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + acct_SOURCES = acct.c + acct_OBJECTS = acct.$(OBJEXT) + acct_LDADD = $(LDADD) +@@ -790,6 +831,17 @@ + chmod__secontext_full_SOURCES = chmod--secontext_full.c + chmod__secontext_full_OBJECTS = chmod--secontext_full.$(OBJEXT) + chmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++chmod__secontext_full_mismatch_SOURCES = \ ++ chmod--secontext_full_mismatch.c ++chmod__secontext_full_mismatch_OBJECTS = \ ++ chmod--secontext_full_mismatch.$(OBJEXT) ++chmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++chmod__secontext_mismatch_SOURCES = chmod--secontext_mismatch.c ++chmod__secontext_mismatch_OBJECTS = \ ++ chmod--secontext_mismatch.$(OBJEXT) ++chmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + chown_SOURCES = chown.c + chown_OBJECTS = chown.$(OBJEXT) + chown_LDADD = $(LDADD) +@@ -1031,6 +1083,17 @@ + execve__secontext_full_SOURCES = execve--secontext_full.c + execve__secontext_full_OBJECTS = execve--secontext_full.$(OBJEXT) + execve__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execve__secontext_full_mismatch_SOURCES = \ ++ execve--secontext_full_mismatch.c ++execve__secontext_full_mismatch_OBJECTS = \ ++ execve--secontext_full_mismatch.$(OBJEXT) ++execve__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execve__secontext_mismatch_SOURCES = execve--secontext_mismatch.c ++execve__secontext_mismatch_OBJECTS = \ ++ execve--secontext_mismatch.$(OBJEXT) ++execve__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execve_v_SOURCES = execve-v.c + execve_v_OBJECTS = execve-v.$(OBJEXT) + execve_v_LDADD = $(LDADD) +@@ -1045,6 +1108,17 @@ + execveat__secontext_full_SOURCES = execveat--secontext_full.c + execveat__secontext_full_OBJECTS = execveat--secontext_full.$(OBJEXT) + execveat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execveat__secontext_full_mismatch_SOURCES = \ ++ execveat--secontext_full_mismatch.c ++execveat__secontext_full_mismatch_OBJECTS = \ ++ execveat--secontext_full_mismatch.$(OBJEXT) ++execveat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execveat__secontext_mismatch_SOURCES = execveat--secontext_mismatch.c ++execveat__secontext_mismatch_OBJECTS = \ ++ execveat--secontext_mismatch.$(OBJEXT) ++execveat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execveat_v_SOURCES = execveat-v.c + execveat_v_OBJECTS = execveat-v.$(OBJEXT) + execveat_v_LDADD = $(LDADD) +@@ -1061,6 +1135,18 @@ + faccessat--secontext_full.$(OBJEXT) + faccessat__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat__secontext_full_mismatch_SOURCES = \ ++ faccessat--secontext_full_mismatch.c ++faccessat__secontext_full_mismatch_OBJECTS = \ ++ faccessat--secontext_full_mismatch.$(OBJEXT) ++faccessat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat__secontext_mismatch_SOURCES = \ ++ faccessat--secontext_mismatch.c ++faccessat__secontext_mismatch_OBJECTS = \ ++ faccessat--secontext_mismatch.$(OBJEXT) ++faccessat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_P_SOURCES = faccessat-P.c + faccessat_P_OBJECTS = faccessat-P.$(OBJEXT) + faccessat_P_LDADD = $(LDADD) +@@ -1077,6 +1163,18 @@ + faccessat-y--secontext_full.$(OBJEXT) + faccessat_y__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat_y__secontext_full_mismatch_SOURCES = \ ++ faccessat-y--secontext_full_mismatch.c ++faccessat_y__secontext_full_mismatch_OBJECTS = \ ++ faccessat-y--secontext_full_mismatch.$(OBJEXT) ++faccessat_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat_y__secontext_mismatch_SOURCES = \ ++ faccessat-y--secontext_mismatch.c ++faccessat_y__secontext_mismatch_OBJECTS = \ ++ faccessat-y--secontext_mismatch.$(OBJEXT) ++faccessat_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_yy_SOURCES = faccessat-yy.c + faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT) + faccessat_yy_LDADD = $(LDADD) +@@ -1126,6 +1224,18 @@ + fanotify_mark--secontext_full.$(OBJEXT) + fanotify_mark__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_full_mismatch_SOURCES = \ ++ fanotify_mark--secontext_full_mismatch.c ++fanotify_mark__secontext_full_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_full_mismatch.$(OBJEXT) ++fanotify_mark__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_mismatch_SOURCES = \ ++ fanotify_mark--secontext_mismatch.c ++fanotify_mark__secontext_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_mismatch.$(OBJEXT) ++fanotify_mark__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c + fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT) + fanotify_mark_Xabbrev_LDADD = $(LDADD) +@@ -1152,6 +1262,17 @@ + fchmod__secontext_full_SOURCES = fchmod--secontext_full.c + fchmod__secontext_full_OBJECTS = fchmod--secontext_full.$(OBJEXT) + fchmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod__secontext_full_mismatch_SOURCES = \ ++ fchmod--secontext_full_mismatch.c ++fchmod__secontext_full_mismatch_OBJECTS = \ ++ fchmod--secontext_full_mismatch.$(OBJEXT) ++fchmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod__secontext_mismatch_SOURCES = fchmod--secontext_mismatch.c ++fchmod__secontext_mismatch_OBJECTS = \ ++ fchmod--secontext_mismatch.$(OBJEXT) ++fchmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmod_y_SOURCES = fchmod-y.c + fchmod_y_OBJECTS = fchmod-y.$(OBJEXT) + fchmod_y_LDADD = $(LDADD) +@@ -1162,6 +1283,17 @@ + fchmod_y__secontext_full_SOURCES = fchmod-y--secontext_full.c + fchmod_y__secontext_full_OBJECTS = fchmod-y--secontext_full.$(OBJEXT) + fchmod_y__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod_y__secontext_full_mismatch_SOURCES = \ ++ fchmod-y--secontext_full_mismatch.c ++fchmod_y__secontext_full_mismatch_OBJECTS = \ ++ fchmod-y--secontext_full_mismatch.$(OBJEXT) ++fchmod_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod_y__secontext_mismatch_SOURCES = fchmod-y--secontext_mismatch.c ++fchmod_y__secontext_mismatch_OBJECTS = \ ++ fchmod-y--secontext_mismatch.$(OBJEXT) ++fchmod_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmodat_SOURCES = fchmodat.c + fchmodat_OBJECTS = fchmodat.$(OBJEXT) + fchmodat_LDADD = $(LDADD) +@@ -1172,6 +1304,17 @@ + fchmodat__secontext_full_SOURCES = fchmodat--secontext_full.c + fchmodat__secontext_full_OBJECTS = fchmodat--secontext_full.$(OBJEXT) + fchmodat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmodat__secontext_full_mismatch_SOURCES = \ ++ fchmodat--secontext_full_mismatch.c ++fchmodat__secontext_full_mismatch_OBJECTS = \ ++ fchmodat--secontext_full_mismatch.$(OBJEXT) ++fchmodat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmodat__secontext_mismatch_SOURCES = fchmodat--secontext_mismatch.c ++fchmodat__secontext_mismatch_OBJECTS = \ ++ fchmodat--secontext_mismatch.$(OBJEXT) ++fchmodat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchown_SOURCES = fchown.c + fchown_OBJECTS = fchown.$(OBJEXT) + fchown_LDADD = $(LDADD) +@@ -1190,6 +1333,17 @@ + fchownat__secontext_full_SOURCES = fchownat--secontext_full.c + fchownat__secontext_full_OBJECTS = fchownat--secontext_full.$(OBJEXT) + fchownat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchownat__secontext_full_mismatch_SOURCES = \ ++ fchownat--secontext_full_mismatch.c ++fchownat__secontext_full_mismatch_OBJECTS = \ ++ fchownat--secontext_full_mismatch.$(OBJEXT) ++fchownat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchownat__secontext_mismatch_SOURCES = fchownat--secontext_mismatch.c ++fchownat__secontext_mismatch_OBJECTS = \ ++ fchownat--secontext_mismatch.$(OBJEXT) ++fchownat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fcntl_SOURCES = fcntl.c + fcntl_OBJECTS = fcntl.$(OBJEXT) + fcntl_LDADD = $(LDADD) +@@ -1227,6 +1381,18 @@ + file_handle--secontext_full.$(OBJEXT) + file_handle__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++file_handle__secontext_full_mismatch_SOURCES = \ ++ file_handle--secontext_full_mismatch.c ++file_handle__secontext_full_mismatch_OBJECTS = \ ++ file_handle--secontext_full_mismatch.$(OBJEXT) ++file_handle__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++file_handle__secontext_mismatch_SOURCES = \ ++ file_handle--secontext_mismatch.c ++file_handle__secontext_mismatch_OBJECTS = \ ++ file_handle--secontext_mismatch.$(OBJEXT) ++file_handle__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + filter_unavailable_SOURCES = filter-unavailable.c + filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT) + filter_unavailable_DEPENDENCIES = $(LDADD) +@@ -2318,6 +2484,17 @@ + linkat__secontext_full_SOURCES = linkat--secontext_full.c + linkat__secontext_full_OBJECTS = linkat--secontext_full.$(OBJEXT) + linkat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++linkat__secontext_full_mismatch_SOURCES = \ ++ linkat--secontext_full_mismatch.c ++linkat__secontext_full_mismatch_OBJECTS = \ ++ linkat--secontext_full_mismatch.$(OBJEXT) ++linkat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++linkat__secontext_mismatch_SOURCES = linkat--secontext_mismatch.c ++linkat__secontext_mismatch_OBJECTS = \ ++ linkat--secontext_mismatch.$(OBJEXT) ++linkat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + list_sigaction_signum_SOURCES = list_sigaction_signum.c + list_sigaction_signum_OBJECTS = list_sigaction_signum.$(OBJEXT) + list_sigaction_signum_LDADD = $(LDADD) +@@ -2976,6 +3153,15 @@ + open__secontext_full_SOURCES = open--secontext_full.c + open__secontext_full_OBJECTS = open--secontext_full.$(OBJEXT) + open__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++open__secontext_full_mismatch_SOURCES = \ ++ open--secontext_full_mismatch.c ++open__secontext_full_mismatch_OBJECTS = \ ++ open--secontext_full_mismatch.$(OBJEXT) ++open__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++open__secontext_mismatch_SOURCES = open--secontext_mismatch.c ++open__secontext_mismatch_OBJECTS = open--secontext_mismatch.$(OBJEXT) ++open__secontext_mismatch_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) + open_tree_SOURCES = open_tree.c + open_tree_OBJECTS = open_tree.$(OBJEXT) + open_tree_LDADD = $(LDADD) +@@ -2994,6 +3180,17 @@ + openat__secontext_full_SOURCES = openat--secontext_full.c + openat__secontext_full_OBJECTS = openat--secontext_full.$(OBJEXT) + openat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++openat__secontext_full_mismatch_SOURCES = \ ++ openat--secontext_full_mismatch.c ++openat__secontext_full_mismatch_OBJECTS = \ ++ openat--secontext_full_mismatch.$(OBJEXT) ++openat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++openat__secontext_mismatch_SOURCES = openat--secontext_mismatch.c ++openat__secontext_mismatch_OBJECTS = \ ++ openat--secontext_mismatch.$(OBJEXT) ++openat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + openat2_SOURCES = openat2.c + openat2_OBJECTS = openat2.$(OBJEXT) + openat2_LDADD = $(LDADD) +@@ -4449,6 +4646,8 @@ + ./$(DEPDIR)/_newselect.Po ./$(DEPDIR)/accept.Po \ + ./$(DEPDIR)/accept4.Po ./$(DEPDIR)/access--secontext.Po \ + ./$(DEPDIR)/access--secontext_full.Po ./$(DEPDIR)/access.Po \ ++ ./$(DEPDIR)/access--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/access--secontext_mismatch.Po \ + ./$(DEPDIR)/acct.Po ./$(DEPDIR)/add_key.Po \ + ./$(DEPDIR)/adjtimex.Po ./$(DEPDIR)/aio.Po \ + ./$(DEPDIR)/aio_pgetevents.Po ./$(DEPDIR)/alarm.Po \ +@@ -4468,6 +4667,8 @@ + ./$(DEPDIR)/chdir.Po ./$(DEPDIR)/check_sigblock.Po \ + ./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod--secontext.Po \ + ./$(DEPDIR)/chmod--secontext_full.Po ./$(DEPDIR)/chmod.Po \ ++ ./$(DEPDIR)/chmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/chmod--secontext_mismatch.Po \ + ./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \ + ./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \ + ./$(DEPDIR)/clock_adjtime64.Po ./$(DEPDIR)/clock_nanosleep.Po \ +@@ -4503,14 +4704,22 @@ + ./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \ + ./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve--secontext.Po \ + ./$(DEPDIR)/execve--secontext_full.Po ./$(DEPDIR)/execve-v.Po \ ++ ./$(DEPDIR)/execve--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execve--secontext_mismatch.Po \ + ./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat--secontext.Po \ + ./$(DEPDIR)/execveat--secontext_full.Po \ ++ ./$(DEPDIR)/execveat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execveat--secontext_mismatch.Po \ + ./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \ + ./$(DEPDIR)/faccessat--secontext.Po \ + ./$(DEPDIR)/faccessat--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-P.Po \ + ./$(DEPDIR)/faccessat-y--secontext.Po \ + ./$(DEPDIR)/faccessat-y--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-y.Po ./$(DEPDIR)/faccessat-yy.Po \ + ./$(DEPDIR)/faccessat.Po ./$(DEPDIR)/faccessat2-P.Po \ + ./$(DEPDIR)/faccessat2-y.Po ./$(DEPDIR)/faccessat2-yy.Po \ +@@ -4519,26 +4728,38 @@ + ./$(DEPDIR)/fanotify_init.Po \ + ./$(DEPDIR)/fanotify_mark--secontext.Po \ + ./$(DEPDIR)/fanotify_mark--secontext_full.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po \ + ./$(DEPDIR)/fanotify_mark-Xabbrev.Po \ + ./$(DEPDIR)/fanotify_mark-Xraw.Po \ + ./$(DEPDIR)/fanotify_mark-Xverbose.Po \ + ./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \ + ./$(DEPDIR)/fchmod--secontext.Po \ + ./$(DEPDIR)/fchmod--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y--secontext.Po \ + ./$(DEPDIR)/fchmod-y--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y.Po ./$(DEPDIR)/fchmod.Po \ + ./$(DEPDIR)/fchmodat--secontext.Po \ + ./$(DEPDIR)/fchmodat--secontext_full.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmodat.Po ./$(DEPDIR)/fchown.Po \ + ./$(DEPDIR)/fchown32.Po ./$(DEPDIR)/fchownat--secontext.Po \ + ./$(DEPDIR)/fchownat--secontext_full.Po \ ++ ./$(DEPDIR)/fchownat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchownat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchownat.Po \ + ./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fcntl64--pidns-translation.Po \ + ./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \ + ./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle--secontext.Po \ + ./$(DEPDIR)/file_handle--secontext_full.Po \ ++ ./$(DEPDIR)/file_handle--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/file_handle--secontext_mismatch.Po \ + ./$(DEPDIR)/file_handle.Po ./$(DEPDIR)/filter-unavailable.Po \ + ./$(DEPDIR)/filter_seccomp-flag.Po \ + ./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \ +@@ -4753,6 +4972,8 @@ + ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \ + ./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat--secontext.Po \ + ./$(DEPDIR)/linkat--secontext_full.Po ./$(DEPDIR)/linkat.Po \ ++ ./$(DEPDIR)/linkat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/linkat--secontext_mismatch.Po \ + ./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \ + ./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \ + ./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \ +@@ -4867,9 +5088,13 @@ + ./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \ + ./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open--secontext.Po \ + ./$(DEPDIR)/open--secontext_full.Po ./$(DEPDIR)/open.Po \ ++ ./$(DEPDIR)/open--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/open--secontext_mismatch.Po \ + ./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \ + ./$(DEPDIR)/openat--secontext.Po \ + ./$(DEPDIR)/openat--secontext_full.Po ./$(DEPDIR)/openat.Po \ ++ ./$(DEPDIR)/openat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/openat--secontext_mismatch.Po \ + ./$(DEPDIR)/openat2-Xabbrev.Po ./$(DEPDIR)/openat2-Xraw.Po \ + ./$(DEPDIR)/openat2-Xverbose.Po \ + ./$(DEPDIR)/openat2-v-y-Xabbrev.Po \ +@@ -5119,7 +5316,8 @@ + am__v_CCLD_1 = + SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ + accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4468,7 +4666,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4484,24 +4683,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4588,6 +4803,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4641,8 +4857,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -4753,7 +4971,8 @@ + xetpriority--pidns-translation.c xettimeofday.c zeroargc.c + DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ + accept.c accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4762,7 +4981,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4778,24 +4998,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4882,6 +5118,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4935,8 +5172,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -6212,66 +6451,126 @@ + secontext_EXECUTABLES = \ + access--secontext \ + access--secontext_full \ ++ access--secontext_full_mismatch \ ++ access--secontext_mismatch \ + chmod--secontext \ + chmod--secontext_full \ ++ chmod--secontext_full_mismatch \ ++ chmod--secontext_mismatch \ + execve--secontext \ + execve--secontext_full \ ++ execve--secontext_full_mismatch \ ++ execve--secontext_mismatch \ + execveat--secontext \ + execveat--secontext_full \ ++ execveat--secontext_full_mismatch \ ++ execveat--secontext_mismatch \ + faccessat--secontext \ + faccessat--secontext_full \ ++ faccessat--secontext_full_mismatch \ ++ faccessat--secontext_mismatch \ + faccessat-y--secontext \ + faccessat-y--secontext_full \ ++ faccessat-y--secontext_full_mismatch \ ++ faccessat-y--secontext_mismatch \ + fanotify_mark--secontext \ + fanotify_mark--secontext_full \ ++ fanotify_mark--secontext_full_mismatch \ ++ fanotify_mark--secontext_mismatch \ + fchmod--secontext \ + fchmod--secontext_full \ ++ fchmod--secontext_full_mismatch \ ++ fchmod--secontext_mismatch \ + fchmod-y--secontext \ + fchmod-y--secontext_full \ ++ fchmod-y--secontext_full_mismatch \ ++ fchmod-y--secontext_mismatch \ + fchmodat--secontext \ + fchmodat--secontext_full \ ++ fchmodat--secontext_full_mismatch \ ++ fchmodat--secontext_mismatch \ + fchownat--secontext \ + fchownat--secontext_full \ ++ fchownat--secontext_full_mismatch \ ++ fchownat--secontext_mismatch \ + file_handle--secontext \ + file_handle--secontext_full \ ++ file_handle--secontext_full_mismatch \ ++ file_handle--secontext_mismatch \ + linkat--secontext \ + linkat--secontext_full \ ++ linkat--secontext_full_mismatch \ ++ linkat--secontext_mismatch \ + open--secontext \ + open--secontext_full \ ++ open--secontext_full_mismatch \ ++ open--secontext_mismatch \ + openat--secontext \ + openat--secontext_full \ ++ openat--secontext_full_mismatch \ ++ openat--secontext_mismatch \ + # + + access__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + access__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + attach_f_p_LDADD = -lpthread $(LDADD) + count_f_LDADD = -lpthread $(LDADD) + delay_LDADD = $(clock_LIBS) $(LDADD) +@@ -6325,15 +6624,20 @@ + # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. + GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ + accept4.gen.test access.gen.test access--secontext.gen.test \ +- access--secontext_full.gen.test acct.gen.test add_key.gen.test \ +- adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test \ +- alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test \ ++ access--secontext_full.gen.test \ ++ access--secontext_full_mismatch.gen.test \ ++ access--secontext_mismatch.gen.test acct.gen.test \ ++ add_key.gen.test adjtimex.gen.test aio.gen.test \ ++ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \ ++ bpf-obj_get_info_by_fd.gen.test \ + bpf-obj_get_info_by_fd-prog.gen.test \ + bpf-obj_get_info_by_fd-prog-v.gen.test \ + bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test \ + btrfs.gen.test chdir.gen.test chmod.gen.test \ + chmod--secontext.gen.test chmod--secontext_full.gen.test \ +- chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test \ ++ chmod--secontext_full_mismatch.gen.test \ ++ chmod--secontext_mismatch.gen.test chown.gen.test \ ++ chown32.gen.test chroot.gen.test clock.gen.test \ + clock_adjtime.gen.test clock_adjtime64.gen.test \ + clock_nanosleep.gen.test clock_xettime.gen.test \ + clock_xettime64.gen.test clone3.gen.test \ +@@ -6356,36 +6660,53 @@ + epoll_pwait2-P.gen.test epoll_pwait2-y.gen.test \ + epoll_wait.gen.test erestartsys.gen.test \ + execve--secontext.gen.test execve--secontext_full.gen.test \ +- execveat.gen.test execveat--secontext.gen.test \ +- execveat--secontext_full.gen.test execveat-v.gen.test \ ++ execve--secontext_full_mismatch.gen.test \ ++ execve--secontext_mismatch.gen.test execveat.gen.test \ ++ execveat--secontext.gen.test execveat--secontext_full.gen.test \ ++ execveat--secontext_full_mismatch.gen.test \ ++ execveat--secontext_mismatch.gen.test execveat-v.gen.test \ + faccessat--secontext.gen.test \ +- faccessat--secontext_full.gen.test faccessat-P.gen.test \ ++ faccessat--secontext_full.gen.test \ ++ faccessat--secontext_full_mismatch.gen.test \ ++ faccessat--secontext_mismatch.gen.test faccessat-P.gen.test \ + faccessat-y.gen.test faccessat-y--secontext.gen.test \ +- faccessat-y--secontext_full.gen.test faccessat-yy.gen.test \ ++ faccessat-y--secontext_full.gen.test \ ++ faccessat-y--secontext_full_mismatch.gen.test \ ++ faccessat-y--secontext_mismatch.gen.test faccessat-yy.gen.test \ + faccessat2-P.gen.test faccessat2-y.gen.test \ + faccessat2-yy.gen.test fadvise64_64.gen.test \ + fallocate.gen.test fanotify_init.gen.test \ + fanotify_mark.gen.test fanotify_mark--secontext.gen.test \ + fanotify_mark--secontext_full.gen.test \ ++ fanotify_mark--secontext_full_mismatch.gen.test \ ++ fanotify_mark--secontext_mismatch.gen.test \ + fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \ + fanotify_mark-Xverbose.gen.test fchdir.gen.test \ + fchmod.gen.test fchmod--secontext.gen.test \ +- fchmod--secontext_full.gen.test fchmod-y.gen.test \ ++ fchmod--secontext_full.gen.test \ ++ fchmod--secontext_full_mismatch.gen.test \ ++ fchmod--secontext_mismatch.gen.test fchmod-y.gen.test \ + fchmod-y--secontext.gen.test fchmod-y--secontext_full.gen.test \ +- fchmodat.gen.test fchmodat--secontext.gen.test \ +- fchmodat--secontext_full.gen.test fchown.gen.test \ ++ fchmod-y--secontext_full_mismatch.gen.test \ ++ fchmod-y--secontext_mismatch.gen.test fchmodat.gen.test \ ++ fchmodat--secontext.gen.test fchmodat--secontext_full.gen.test \ ++ fchmodat--secontext_full_mismatch.gen.test \ ++ fchmodat--secontext_mismatch.gen.test fchown.gen.test \ + fchown32.gen.test fchownat.gen.test \ + fchownat--secontext.gen.test fchownat--secontext_full.gen.test \ +- fcntl.gen.test fcntl--pidns-translation.gen.test \ +- fcntl64.gen.test fcntl64--pidns-translation.gen.test \ +- fdatasync.gen.test file_handle.gen.test \ +- file_handle--secontext.gen.test \ +- file_handle--secontext_full.gen.test filter_seccomp.gen.test \ +- filter_seccomp-flag.gen.test finit_module.gen.test \ +- flock.gen.test fork-f.gen.test fsconfig.gen.test \ +- fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test \ +- fspick.gen.test fspick-P.gen.test fstat.gen.test \ +- fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ ++ fchownat--secontext_full_mismatch.gen.test \ ++ fchownat--secontext_mismatch.gen.test fcntl.gen.test \ ++ fcntl--pidns-translation.gen.test fcntl64.gen.test \ ++ fcntl64--pidns-translation.gen.test fdatasync.gen.test \ ++ file_handle.gen.test file_handle--secontext.gen.test \ ++ file_handle--secontext_full.gen.test \ ++ file_handle--secontext_full_mismatch.gen.test \ ++ file_handle--secontext_mismatch.gen.test \ ++ filter_seccomp.gen.test filter_seccomp-flag.gen.test \ ++ finit_module.gen.test flock.gen.test fork-f.gen.test \ ++ fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \ ++ fsopen.gen.test fspick.gen.test fspick-P.gen.test \ ++ fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ + fstat-Xverbose.gen.test fstat64.gen.test \ + fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \ + fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \ +@@ -6512,8 +6833,10 @@ + landlock_restrict_self-y.gen.test lchown.gen.test \ + lchown32.gen.test link.gen.test linkat.gen.test \ + linkat--secontext.gen.test linkat--secontext_full.gen.test \ +- lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \ +- madvise.gen.test maybe_switch_current_tcp.gen.test \ ++ linkat--secontext_full_mismatch.gen.test \ ++ linkat--secontext_mismatch.gen.test lookup_dcookie.gen.test \ ++ lstat.gen.test lstat64.gen.test madvise.gen.test \ ++ maybe_switch_current_tcp.gen.test \ + maybe_switch_current_tcp--quiet-thread-execve.gen.test \ + mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \ + mbind-Xverbose.gen.test membarrier.gen.test \ +@@ -6582,16 +6905,19 @@ + oldselect.gen.test oldselect-P.gen.test \ + oldselect-efault.gen.test oldselect-efault-P.gen.test \ + oldstat.gen.test open.gen.test open--secontext.gen.test \ +- open--secontext_full.gen.test open_tree.gen.test \ ++ open--secontext_full.gen.test \ ++ open--secontext_full_mismatch.gen.test \ ++ open--secontext_mismatch.gen.test open_tree.gen.test \ + open_tree-P.gen.test openat.gen.test \ + openat--secontext.gen.test openat--secontext_full.gen.test \ +- openat2.gen.test openat2-Xabbrev.gen.test \ +- openat2-Xraw.gen.test openat2-Xverbose.gen.test \ +- openat2-v.gen.test openat2-v-y.gen.test \ +- openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test \ +- openat2-v-y-Xverbose.gen.test openat2-y.gen.test \ +- orphaned_process_group.gen.test osf_utimes.gen.test \ +- pause.gen.test perf_event_open.gen.test \ ++ openat--secontext_full_mismatch.gen.test \ ++ openat--secontext_mismatch.gen.test openat2.gen.test \ ++ openat2-Xabbrev.gen.test openat2-Xraw.gen.test \ ++ openat2-Xverbose.gen.test openat2-v.gen.test \ ++ openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \ ++ openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \ ++ openat2-y.gen.test orphaned_process_group.gen.test \ ++ osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \ + perf_event_open_nonverbose.gen.test \ + perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \ + personality-Xraw.gen.test personality-Xverbose.gen.test \ +@@ -7155,6 +7481,14 @@ + @rm -f access--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(access__secontext_full_OBJECTS) $(access__secontext_full_LDADD) $(LIBS) + ++access--secontext_full_mismatch$(EXEEXT): $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_LDADD) $(LIBS) ++ ++access--secontext_mismatch$(EXEEXT): $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_LDADD) $(LIBS) ++ + acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) + @rm -f acct$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS) +@@ -7283,6 +7617,14 @@ + @rm -f chmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_OBJECTS) $(chmod__secontext_full_LDADD) $(LIBS) + ++chmod--secontext_full_mismatch$(EXEEXT): $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++chmod--secontext_mismatch$(EXEEXT): $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_LDADD) $(LIBS) ++ + chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) + @rm -f chown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS) +@@ -7527,6 +7869,14 @@ + @rm -f execve--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve__secontext_full_OBJECTS) $(execve__secontext_full_LDADD) $(LIBS) + ++execve--secontext_full_mismatch$(EXEEXT): $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execve--secontext_mismatch$(EXEEXT): $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_LDADD) $(LIBS) ++ + execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) + @rm -f execve-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS) +@@ -7543,6 +7893,14 @@ + @rm -f execveat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_OBJECTS) $(execveat__secontext_full_LDADD) $(LIBS) + ++execveat--secontext_full_mismatch$(EXEEXT): $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execveat--secontext_mismatch$(EXEEXT): $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_LDADD) $(LIBS) ++ + execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) + @rm -f execveat-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS) +@@ -7559,6 +7917,14 @@ + @rm -f faccessat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_OBJECTS) $(faccessat__secontext_full_LDADD) $(LIBS) + ++faccessat--secontext_full_mismatch$(EXEEXT): $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat--secontext_mismatch$(EXEEXT): $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) + @rm -f faccessat-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS) +@@ -7575,6 +7941,14 @@ + @rm -f faccessat-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_OBJECTS) $(faccessat_y__secontext_full_LDADD) $(LIBS) + ++faccessat-y--secontext_full_mismatch$(EXEEXT): $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat-y--secontext_mismatch$(EXEEXT): $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) + @rm -f faccessat-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS) +@@ -7623,6 +7997,14 @@ + @rm -f fanotify_mark--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_OBJECTS) $(fanotify_mark__secontext_full_LDADD) $(LIBS) + ++fanotify_mark--secontext_full_mismatch$(EXEEXT): $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fanotify_mark--secontext_mismatch$(EXEEXT): $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_LDADD) $(LIBS) ++ + fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES) + @rm -f fanotify_mark-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS) +@@ -7651,6 +8033,14 @@ + @rm -f fchmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_OBJECTS) $(fchmod__secontext_full_LDADD) $(LIBS) + ++fchmod--secontext_full_mismatch$(EXEEXT): $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod--secontext_mismatch$(EXEEXT): $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_LDADD) $(LIBS) ++ + fchmod-y$(EXEEXT): $(fchmod_y_OBJECTS) $(fchmod_y_DEPENDENCIES) $(EXTRA_fchmod_y_DEPENDENCIES) + @rm -f fchmod-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y_OBJECTS) $(fchmod_y_LDADD) $(LIBS) +@@ -7663,6 +8053,14 @@ + @rm -f fchmod-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_OBJECTS) $(fchmod_y__secontext_full_LDADD) $(LIBS) + ++fchmod-y--secontext_full_mismatch$(EXEEXT): $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod-y--secontext_mismatch$(EXEEXT): $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_LDADD) $(LIBS) ++ + fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) + @rm -f fchmodat$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS) +@@ -7675,6 +8073,14 @@ + @rm -f fchmodat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_OBJECTS) $(fchmodat__secontext_full_LDADD) $(LIBS) + ++fchmodat--secontext_full_mismatch$(EXEEXT): $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmodat--secontext_mismatch$(EXEEXT): $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_LDADD) $(LIBS) ++ + fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) + @rm -f fchown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS) +@@ -7695,6 +8101,14 @@ + @rm -f fchownat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_OBJECTS) $(fchownat__secontext_full_LDADD) $(LIBS) + ++fchownat--secontext_full_mismatch$(EXEEXT): $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchownat--secontext_mismatch$(EXEEXT): $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_LDADD) $(LIBS) ++ + fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) + @rm -f fcntl$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS) +@@ -7731,6 +8145,14 @@ + @rm -f file_handle--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_OBJECTS) $(file_handle__secontext_full_LDADD) $(LIBS) + ++file_handle--secontext_full_mismatch$(EXEEXT): $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_LDADD) $(LIBS) ++ ++file_handle--secontext_mismatch$(EXEEXT): $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_LDADD) $(LIBS) ++ + filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) + @rm -f filter-unavailable$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS) +@@ -8775,6 +9197,14 @@ + @rm -f linkat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_OBJECTS) $(linkat__secontext_full_LDADD) $(LIBS) + ++linkat--secontext_full_mismatch$(EXEEXT): $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++linkat--secontext_mismatch$(EXEEXT): $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_LDADD) $(LIBS) ++ + list_sigaction_signum$(EXEEXT): $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_DEPENDENCIES) $(EXTRA_list_sigaction_signum_DEPENDENCIES) + @rm -f list_sigaction_signum$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_LDADD) $(LIBS) +@@ -9423,6 +9853,14 @@ + @rm -f open--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open__secontext_full_OBJECTS) $(open__secontext_full_LDADD) $(LIBS) + ++open--secontext_full_mismatch$(EXEEXT): $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_LDADD) $(LIBS) ++ ++open--secontext_mismatch$(EXEEXT): $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_LDADD) $(LIBS) ++ + open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) + @rm -f open_tree$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS) +@@ -9443,6 +9881,14 @@ + @rm -f openat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat__secontext_full_OBJECTS) $(openat__secontext_full_LDADD) $(LIBS) + ++openat--secontext_full_mismatch$(EXEEXT): $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++openat--secontext_mismatch$(EXEEXT): $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_LDADD) $(LIBS) ++ + openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) + @rm -f openat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS) +@@ -10835,6 +11281,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept4.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acct.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@ # am--include-marker +@@ -10867,6 +11315,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sigign.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown32.Po@am__quote@ # am--include-marker +@@ -10928,17 +11378,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventfd.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker +@@ -10952,6 +11410,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@ # am--include-marker +@@ -10959,17 +11419,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker +@@ -10979,6 +11447,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker +@@ -11276,6 +11746,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/llseek.Po@am__quote@ # am--include-marker +@@ -11438,11 +11910,15 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker +@@ -13004,6 +13480,12 @@ + $(srcdir)/access--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/access--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/access--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13055,6 +13537,12 @@ + $(srcdir)/chmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/chmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/chmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13220,6 +13708,12 @@ + $(srcdir)/execve--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execve--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execve--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13229,6 +13723,12 @@ + $(srcdir)/execveat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execveat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execveat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13238,6 +13738,12 @@ + $(srcdir)/faccessat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13250,6 +13756,12 @@ + $(srcdir)/faccessat-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13280,6 +13792,12 @@ + $(srcdir)/fanotify_mark--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fanotify_mark--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fanotify_mark--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13301,6 +13819,12 @@ + $(srcdir)/fchmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmod-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13310,6 +13834,12 @@ + $(srcdir)/fchmod-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13319,6 +13849,12 @@ + $(srcdir)/fchmodat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmodat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmodat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13334,6 +13870,12 @@ + $(srcdir)/fchownat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchownat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchownat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13358,6 +13900,12 @@ + $(srcdir)/file_handle--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/file_handle--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/file_handle--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14117,6 +14665,12 @@ + $(srcdir)/linkat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/linkat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/linkat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14546,6 +15100,12 @@ + $(srcdir)/open--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/open--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/open--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14561,6 +15121,12 @@ + $(srcdir)/openat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/openat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/openat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +--- old/configure 2022-02-07 20:23:38.732063729 +0100 ++++ configure 2022-02-07 20:24:00.604063427 +0100 +@@ -18438,7 +18438,7 @@ + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $libselinux_LDFLAGS" + missing= +- for func in getpidcon getfilecon; do ++ for func in getpidcon getfilecon selabel_open selabel_lookup; do + as_ac_Lib=`$as_echo "ac_cv_lib_selinux_$func" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $func in -lselinux" >&5 + $as_echo_n "checking for $func in -lselinux... " >&6; } +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/access--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/chmod--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/execveat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/execve--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/faccessat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/faccessat-y--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fanotify_mark--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmodat--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmod--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmod-y--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchownat--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/file_handle--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/linkat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/access--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/chmod--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/execveat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/execve--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/faccessat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/faccessat-y--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fanotify_mark--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmodat--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmod--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmod-y--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchownat--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/file_handle--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/linkat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/openat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/open--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/access--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/chmod--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/execveat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/execve--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/faccessat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/faccessat-y--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fanotify_mark--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmodat--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmod--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmod-y--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchownat--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/file_handle--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/linkat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/openat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/open--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/openat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/open--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/access--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/chmod--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/execveat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/execve--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/faccessat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/faccessat-y--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fanotify_mark--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmodat--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmod--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmod-y--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchownat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/file_handle--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/linkat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/access--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/chmod--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/execveat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/execve--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/faccessat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/faccessat-y--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fanotify_mark--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmodat--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmod--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmod-y--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchownat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/file_handle--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/linkat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/openat--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/open--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/access--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/chmod--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/execveat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/execve--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/faccessat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/faccessat-y--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fanotify_mark--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmodat--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmod--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmod-y--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchownat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/file_handle--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/linkat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/openat--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/open--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/openat--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/open--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext_full.c" +-- +2.1.4 + diff --git a/SOURCES/0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch b/SOURCES/0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch new file mode 100644 index 0000000..78f92d3 --- /dev/null +++ b/SOURCES/0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch @@ -0,0 +1,122 @@ +From f5fd689e40322a7b08a97eb2d26f192610728230 Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Tue, 18 Jan 2022 16:10:28 +0100 +Subject: [PATCH 170/174] tests/linkat: reset errno before SELinux context + manipulation + +To avoid printing a stale error information in case of mismatch check +failure. + +* tests/linkat.c: Include . +(main): Add "errno = 0" before update_secontext_field calls. +--- + tests/linkat.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/tests/linkat.c b/tests/linkat.c +index 1a869e3..c3e2ee4 100644 +--- a/tests/linkat.c ++++ b/tests/linkat.c +@@ -10,6 +10,7 @@ + #include "tests.h" + #include "scno.h" + ++#include + #include + #include + #include +@@ -91,6 +92,7 @@ main(void) + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + +@@ -112,6 +114,7 @@ main(void) + free(sample_1_secontext); + #endif + ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; +@@ -142,6 +145,7 @@ main(void) + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); + ++ errno = 0; + update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + +--- a/tests-m32/linkat.c ++++ b/tests-m32/linkat.c +@@ -10,6 +10,7 @@ + #include "tests.h" + #include "scno.h" + ++#include + #include + #include + #include +@@ -91,6 +92,7 @@ main(void) + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + +@@ -112,6 +114,7 @@ main(void) + free(sample_1_secontext); + #endif + ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; +@@ -142,6 +145,7 @@ main(void) + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); + ++ errno = 0; + update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + +--- a/tests-mx32/linkat.c ++++ b/tests-mx32/linkat.c +@@ -10,6 +10,7 @@ + #include "tests.h" + #include "scno.h" + ++#include + #include + #include + #include +@@ -91,6 +92,7 @@ main(void) + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + +@@ -112,6 +114,7 @@ main(void) + free(sample_1_secontext); + #endif + ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; +@@ -142,6 +145,7 @@ main(void) + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); + ++ errno = 0; + update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + +-- +2.1.4 + diff --git a/SOURCES/0171-tests-secontext-add-secontext-field-getters.patch b/SOURCES/0171-tests-secontext-add-secontext-field-getters.patch new file mode 100644 index 0000000..fce5e5a --- /dev/null +++ b/SOURCES/0171-tests-secontext-add-secontext-field-getters.patch @@ -0,0 +1,356 @@ +From 4951286eb634c00c11883b851c91f3a21975eabd Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Tue, 18 Jan 2022 18:03:57 +0100 +Subject: [PATCH 171/174] tests/secontext: add secontext field getters + +* tests/secontext.h (get_secontext_field, get_secontext_field_file): New +declarations. +* tests/secontext.c (get_type_from_context): Rename to... +(get_secontext_field): ...this; remove "static" qualifier; add "field" +argument, use it. +(raw_expected_secontext_short_file, raw_secontext_short_pid): Replace +get_type_from_context call with get_secontext_field. +(get_secontext_field_file): New function. +(raw_secontext_short_file): Replace body with get_secontext_field_file +call. +--- + tests/secontext.c | 27 +++++++++++++++------------ + tests/secontext.h | 20 ++++++++++++++++++++ + 2 files changed, 35 insertions(+), 12 deletions(-) + +diff --git a/tests/secontext.c b/tests/secontext.c +index 848eea9..52211ed 100644 +--- a/tests/secontext.c ++++ b/tests/secontext.c +@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context) + return context; + } + +-static char * +-get_type_from_context(const char *full_context) ++char * ++get_secontext_field(const char *full_context, enum secontext_field field) + { + int saved_errno = errno; + +@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context) + char *context = NULL; + for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; + token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { ++ if (i == field) { + context = xstrdup(token); + break; + } +@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_expected_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename) + return full_secontext; + } + +-static char * +-raw_secontext_short_file(const char *filename) ++char * ++get_secontext_field_file(const char *file, enum secontext_field field) + { +- int saved_errno = errno; +- +- char *ctx = raw_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *ctx = raw_secontext_full_file(file); ++ char *type = get_secontext_field(ctx, field); + free(ctx); + +- errno = saved_errno; + return type; + } + + static char * ++raw_secontext_short_file(const char *filename) ++{ ++ return get_secontext_field_file(filename, SECONTEXT_TYPE); ++} ++ ++static char * + raw_secontext_full_pid(pid_t pid) + { + int saved_errno = errno; +@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +diff --git a/tests/secontext.h b/tests/secontext.h +index 1d0251a..e5571d5 100644 +--- a/tests/secontext.h ++++ b/tests/secontext.h +@@ -23,6 +23,15 @@ enum secontext_field { + + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + ++/** ++ * Parse a SELinux context string and return a specified field, duplicated ++ * in a separate string. The caller is responsible for freeing the memory ++ * pointed by the returned value. ++ */ ++char *get_secontext_field(const char *full_context, enum secontext_field field); ++ ++char *get_secontext_field_file(const char *file, enum secontext_field field); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field, + + #else + ++static inline char * ++get_secontext_field(const char *ctx, enum secontext_field field) ++{ ++ return NULL; ++} ++static inline char * ++get_secontext_field_file(const char *file, enum secontext_field field) ++{ ++ return NULL; ++} ++ + static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c +index 848eea9..52211ed 100644 +--- a/tests-m32/secontext.c ++++ b/tests-m32/secontext.c +@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context) + return context; + } + +-static char * +-get_type_from_context(const char *full_context) ++char * ++get_secontext_field(const char *full_context, enum secontext_field field) + { + int saved_errno = errno; + +@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context) + char *context = NULL; + for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; + token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { ++ if (i == field) { + context = xstrdup(token); + break; + } +@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_expected_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename) + return full_secontext; + } + +-static char * +-raw_secontext_short_file(const char *filename) ++char * ++get_secontext_field_file(const char *file, enum secontext_field field) + { +- int saved_errno = errno; +- +- char *ctx = raw_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *ctx = raw_secontext_full_file(file); ++ char *type = get_secontext_field(ctx, field); + free(ctx); + +- errno = saved_errno; + return type; + } + + static char * ++raw_secontext_short_file(const char *filename) ++{ ++ return get_secontext_field_file(filename, SECONTEXT_TYPE); ++} ++ ++static char * + raw_secontext_full_pid(pid_t pid) + { + int saved_errno = errno; +@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h +index 1d0251a..e5571d5 100644 +--- a/tests-m32/secontext.h ++++ b/tests-m32/secontext.h +@@ -23,6 +23,15 @@ enum secontext_field { + + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + ++/** ++ * Parse a SELinux context string and return a specified field, duplicated ++ * in a separate string. The caller is responsible for freeing the memory ++ * pointed by the returned value. ++ */ ++char *get_secontext_field(const char *full_context, enum secontext_field field); ++ ++char *get_secontext_field_file(const char *file, enum secontext_field field); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field, + + #else + ++static inline char * ++get_secontext_field(const char *ctx, enum secontext_field field) ++{ ++ return NULL; ++} ++static inline char * ++get_secontext_field_file(const char *file, enum secontext_field field) ++{ ++ return NULL; ++} ++ + static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c +index 848eea9..52211ed 100644 +--- a/tests-mx32/secontext.c ++++ b/tests-mx32/secontext.c +@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context) + return context; + } + +-static char * +-get_type_from_context(const char *full_context) ++char * ++get_secontext_field(const char *full_context, enum secontext_field field) + { + int saved_errno = errno; + +@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context) + char *context = NULL; + for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; + token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { ++ if (i == field) { + context = xstrdup(token); + break; + } +@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_expected_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename) + return full_secontext; + } + +-static char * +-raw_secontext_short_file(const char *filename) ++char * ++get_secontext_field_file(const char *file, enum secontext_field field) + { +- int saved_errno = errno; +- +- char *ctx = raw_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *ctx = raw_secontext_full_file(file); ++ char *type = get_secontext_field(ctx, field); + free(ctx); + +- errno = saved_errno; + return type; + } + + static char * ++raw_secontext_short_file(const char *filename) ++{ ++ return get_secontext_field_file(filename, SECONTEXT_TYPE); ++} ++ ++static char * + raw_secontext_full_pid(pid_t pid) + { + int saved_errno = errno; +@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h +index 1d0251a..e5571d5 100644 +--- a/tests-mx32/secontext.h ++++ b/tests-mx32/secontext.h +@@ -23,6 +23,15 @@ enum secontext_field { + + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + ++/** ++ * Parse a SELinux context string and return a specified field, duplicated ++ * in a separate string. The caller is responsible for freeing the memory ++ * pointed by the returned value. ++ */ ++char *get_secontext_field(const char *full_context, enum secontext_field field); ++ ++char *get_secontext_field_file(const char *file, enum secontext_field field); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field, + + #else + ++static inline char * ++get_secontext_field(const char *ctx, enum secontext_field field) ++{ ++ return NULL; ++} ++static inline char * ++get_secontext_field_file(const char *file, enum secontext_field field) ++{ ++ return NULL; ++} ++ + static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +-- +2.1.4 + diff --git a/SOURCES/0172-tests-linkat-provide-fallback-values-for-secontext-f.patch b/SOURCES/0172-tests-linkat-provide-fallback-values-for-secontext-f.patch new file mode 100644 index 0000000..066c93a --- /dev/null +++ b/SOURCES/0172-tests-linkat-provide-fallback-values-for-secontext-f.patch @@ -0,0 +1,181 @@ +From 97e2742a7f1e6e113354911d04505ada3bfb5d70 Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Tue, 18 Jan 2022 18:04:42 +0100 +Subject: [PATCH 172/174] tests/linkat: provide fallback values for secontext + fields changes + +* tests/linkat.c (mangle_secontext_field): New function. +(main): Replace calls to update_secontext_field +with mangle_secontext_field calls. +--- + tests/linkat.c | 23 ++++++++++++++++++++--- + 1 file changed, 20 insertions(+), 3 deletions(-) + +diff --git a/tests/linkat.c b/tests/linkat.c +index c3e2ee4..decb736 100644 +--- a/tests/linkat.c ++++ b/tests/linkat.c +@@ -21,6 +21,20 @@ + #include "secontext.h" + #include "xmalloc.h" + ++static void ++mangle_secontext_field(const char *path, enum secontext_field field, ++ const char *new_val, const char *fallback_val) ++{ ++ char *orig = get_secontext_field_file(path, field); ++ if (!orig) ++ return; ++ ++ update_secontext_field(path, field, ++ strcmp(new_val, orig) ? new_val : fallback_val); ++ ++ free(orig); ++} ++ + int + main(void) + { +@@ -93,7 +107,8 @@ main(void) + + #ifdef PRINT_SECONTEXT_MISMATCH + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u", ++ "unconfined_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + + # ifdef PRINT_SECONTEXT_FULL +@@ -115,7 +130,8 @@ main(void) + #endif + + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + +@@ -146,7 +162,8 @@ main(void) + char *cwd = get_fd_path(dfd_old); + + errno = 0; +- update_secontext_field(".", SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(".", SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + + #ifdef PRINT_SECONTEXT_MISMATCH +diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c +index c3e2ee4..decb736 100644 +--- a/tests-m32/linkat.c ++++ b/tests-m32/linkat.c +@@ -21,6 +21,20 @@ + #include "secontext.h" + #include "xmalloc.h" + ++static void ++mangle_secontext_field(const char *path, enum secontext_field field, ++ const char *new_val, const char *fallback_val) ++{ ++ char *orig = get_secontext_field_file(path, field); ++ if (!orig) ++ return; ++ ++ update_secontext_field(path, field, ++ strcmp(new_val, orig) ? new_val : fallback_val); ++ ++ free(orig); ++} ++ + int + main(void) + { +@@ -93,7 +107,8 @@ main(void) + + #ifdef PRINT_SECONTEXT_MISMATCH + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u", ++ "unconfined_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + + # ifdef PRINT_SECONTEXT_FULL +@@ -115,7 +130,8 @@ main(void) + #endif + + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + +@@ -146,7 +162,8 @@ main(void) + char *cwd = get_fd_path(dfd_old); + + errno = 0; +- update_secontext_field(".", SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(".", SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + + #ifdef PRINT_SECONTEXT_MISMATCH +diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c +index c3e2ee4..decb736 100644 +--- a/tests-mx32/linkat.c ++++ b/tests-mx32/linkat.c +@@ -21,6 +21,20 @@ + #include "secontext.h" + #include "xmalloc.h" + ++static void ++mangle_secontext_field(const char *path, enum secontext_field field, ++ const char *new_val, const char *fallback_val) ++{ ++ char *orig = get_secontext_field_file(path, field); ++ if (!orig) ++ return; ++ ++ update_secontext_field(path, field, ++ strcmp(new_val, orig) ? new_val : fallback_val); ++ ++ free(orig); ++} ++ + int + main(void) + { +@@ -93,7 +107,8 @@ main(void) + + #ifdef PRINT_SECONTEXT_MISMATCH + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u", ++ "unconfined_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + + # ifdef PRINT_SECONTEXT_FULL +@@ -115,7 +130,8 @@ main(void) + #endif + + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + +@@ -146,7 +162,8 @@ main(void) + char *cwd = get_fd_path(dfd_old); + + errno = 0; +- update_secontext_field(".", SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(".", SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + + #ifdef PRINT_SECONTEXT_MISMATCH +-- +2.1.4 + diff --git a/SOURCES/0173-tests-secontext-eliminate-separate-secontext_format-.patch b/SOURCES/0173-tests-secontext-eliminate-separate-secontext_format-.patch new file mode 100644 index 0000000..c1eb4aa --- /dev/null +++ b/SOURCES/0173-tests-secontext-eliminate-separate-secontext_format-.patch @@ -0,0 +1,63 @@ +From 6e8aa3749cb7e11e9a59db996f79f036bf7ef263 Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Tue, 18 Jan 2022 18:05:19 +0100 +Subject: [PATCH 173/174] tests/secontext: eliminate separate secontext_format + declaration + +* tests/secontext.c (secontext_format): Remove declaration, supply +the attributes to the definition. +--- + tests/secontext.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/tests/secontext.c b/tests/secontext.c +index 52211ed..ba271c8 100644 +--- a/tests/secontext.c ++++ b/tests/secontext.c +@@ -23,10 +23,7 @@ + # define TEST_SECONTEXT + # include "secontext.h" + +-static char * +-secontext_format(char *context, const char *fmt) +- ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC; +- ++ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC + static char * + secontext_format(char *context, const char *fmt) + { +diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c +index 52211ed..ba271c8 100644 +--- a/tests-m32/secontext.c ++++ b/tests-m32/secontext.c +@@ -23,10 +23,7 @@ + # define TEST_SECONTEXT + # include "secontext.h" + +-static char * +-secontext_format(char *context, const char *fmt) +- ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC; +- ++ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC + static char * + secontext_format(char *context, const char *fmt) + { +diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c +index 52211ed..ba271c8 100644 +--- a/tests-mx32/secontext.c ++++ b/tests-mx32/secontext.c +@@ -23,10 +23,7 @@ + # define TEST_SECONTEXT + # include "secontext.h" + +-static char * +-secontext_format(char *context, const char *fmt) +- ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC; +- ++ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC + static char * + secontext_format(char *context, const char *fmt) + { +-- +2.1.4 + diff --git a/SOURCES/0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch b/SOURCES/0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch new file mode 100644 index 0000000..9a34d01 --- /dev/null +++ b/SOURCES/0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch @@ -0,0 +1,190 @@ +From 78a81bcfb71ef3d9f6e8b1a32e123fbbc6112a60 Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Tue, 18 Jan 2022 18:24:34 +0100 +Subject: [PATCH 174/174] tests/linkat: reset context to the expected one if a + mismatch has been detected + +* tests/secontext.h (reset_secontext_file): New declaration. +* tests/secontext.c (reset_secontext_file): New function. +* tests/linkat.c (main): Check that there is no initial mismatch +in the sample_1 context, reset it otherwise. +--- + tests/linkat.c | 3 +++ + tests/secontext.c | 7 +++++++ + tests/secontext.h | 7 +++++++ + 3 files changed, 17 insertions(+) + +diff --git a/tests/linkat.c b/tests/linkat.c +index decb736..781b85a 100644 +--- a/tests/linkat.c ++++ b/tests/linkat.c +@@ -103,6 +103,9 @@ main(void) + if (close(fd_sample_2)) + perror_msg_and_fail("close"); + ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!")) ++ reset_secontext_file(sample_1); ++ + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH +diff --git a/tests/secontext.c b/tests/secontext.c +index ba271c8..94fadd4 100644 +--- a/tests/secontext.c ++++ b/tests/secontext.c +@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid) + return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid)); + } + ++void reset_secontext_file(const char *file) ++{ ++ char *proper_ctx = raw_expected_secontext_full_file(file); ++ (void) setfilecon(file, proper_ctx); ++ free(proper_ctx); ++} ++ + void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +diff --git a/tests/secontext.h b/tests/secontext.h +index e5571d5..387263e 100644 +--- a/tests/secontext.h ++++ b/tests/secontext.h +@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field); + + char *get_secontext_field_file(const char *file, enum secontext_field field); + ++void reset_secontext_file(const char *file); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field) + } + + static inline void ++reset_secontext_file(const char *file) ++{ ++} ++ ++static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) + { +diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c +index decb736..781b85a 100644 +--- a/tests-m32/linkat.c ++++ b/tests-m32/linkat.c +@@ -103,6 +103,9 @@ main(void) + if (close(fd_sample_2)) + perror_msg_and_fail("close"); + ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!")) ++ reset_secontext_file(sample_1); ++ + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH +diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c +index ba271c8..94fadd4 100644 +--- a/tests-m32/secontext.c ++++ b/tests-m32/secontext.c +@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid) + return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid)); + } + ++void reset_secontext_file(const char *file) ++{ ++ char *proper_ctx = raw_expected_secontext_full_file(file); ++ (void) setfilecon(file, proper_ctx); ++ free(proper_ctx); ++} ++ + void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h +index e5571d5..387263e 100644 +--- a/tests-m32/secontext.h ++++ b/tests-m32/secontext.h +@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field); + + char *get_secontext_field_file(const char *file, enum secontext_field field); + ++void reset_secontext_file(const char *file); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field) + } + + static inline void ++reset_secontext_file(const char *file) ++{ ++} ++ ++static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) + { +diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c +index decb736..781b85a 100644 +--- a/tests-mx32/linkat.c ++++ b/tests-mx32/linkat.c +@@ -103,6 +103,9 @@ main(void) + if (close(fd_sample_2)) + perror_msg_and_fail("close"); + ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!")) ++ reset_secontext_file(sample_1); ++ + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH +diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c +index ba271c8..94fadd4 100644 +--- a/tests-mx32/secontext.c ++++ b/tests-mx32/secontext.c +@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid) + return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid)); + } + ++void reset_secontext_file(const char *file) ++{ ++ char *proper_ctx = raw_expected_secontext_full_file(file); ++ (void) setfilecon(file, proper_ctx); ++ free(proper_ctx); ++} ++ + void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h +index e5571d5..387263e 100644 +--- a/tests-mx32/secontext.h ++++ b/tests-mx32/secontext.h +@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field); + + char *get_secontext_field_file(const char *file, enum secontext_field field); + ++void reset_secontext_file(const char *file); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field) + } + + static inline void ++reset_secontext_file(const char *file) ++{ ++} ++ ++static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) + { +-- +2.1.4 + diff --git a/SPECS/strace.spec b/SPECS/strace.spec index 3e229dc..fa6ba58 100644 --- a/SPECS/strace.spec +++ b/SPECS/strace.spec @@ -3,7 +3,7 @@ Summary: Tracks and displays system calls associated with a running process Name: %{?scl_prefix}strace Version: 5.13 -Release: 3%{?dist} +Release: 3.3%{?dist} # The test suite is GPLv2+, all the rest is LGPLv2.1+. License: LGPL-2.1+ and GPL-2.0+ Group: Development/Debuggers @@ -44,6 +44,19 @@ Patch152: 0152-trie-use-BIT-and-MASK-macros.patch # v5.13-65-g41b753e "tee: rewrite num_params access in tee_fetch_buf_data" Patch153: 0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch +# v5.15~1 "print_ifindex: fix IFNAME_QUOTED_SZ definition" +Patch167: 0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch + +# v5.15~18 "m4: fix st_SELINUX check" +Patch168: 0168-m4-fix-st_SELINUX-check.patch +# v5.16~31 "Implement displaying of expected context upon mismatch" +Patch169: 0169-Implement-displaying-of-expected-context-upon-mismat.patch +Patch170: 0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch +Patch171: 0171-tests-secontext-add-secontext-field-getters.patch +Patch172: 0172-tests-linkat-provide-fallback-values-for-secontext-f.patch +Patch173: 0173-tests-secontext-eliminate-separate-secontext_format-.patch +Patch174: 0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch + ## RHEL7-only: headers on some builders do not provide O_TMPFILE Patch2000: 2000-strace-provide-O_TMPFILE-fallback-definition.patch ## RHEL-only: aarch64 brew builders are extremely slow on qual_fault.test @@ -75,11 +88,22 @@ received by a process. %patch139 -p1 %patch140 -p1 + %patch150 -p1 %patch151 -p1 %patch152 -p1 %patch153 -p1 +%patch167 -p1 + +%patch168 -p1 +%patch169 -p1 +%patch170 -p1 +%patch171 -p1 +%patch172 -p1 +%patch173 -p1 +%patch174 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2003 -p1 @@ -166,6 +190,16 @@ fi %{_mandir}/man1/* %changelog +* Mon Feb 07 2022 Eugene Syromiatnikov - 5.13-3.3 +- Update tests-m32 and tests-mx32 with --secontext=mismatch option support + changes (#2044827). + +* Wed Jan 19 2022 Eugene Syromiatnikov - 5.13-3.2 +- Add --secontext=mismatch option support (#2038991). + +* Wed Jan 05 2022 Eugene Syromiatnikov - 5.13-3.1 +- Fix incorrect ifname printing buffer size (#2028157). + * Mon Aug 23 2021 Eugene Syromiatnikov - 5.13-3 - Address some issues reported by covscan (#1996690).