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" <ldv@strace.io>
+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?= <rmetrich@redhat.com>
+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 <sys/stat.h>, <unistd.h>, <selinux/label.h>,
+"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] <GETOPT_QUAL_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 <string.h>.
+(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 <sys/stat.h> and <selinux/label.h>.
+(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 <ldv@strace.io>
+
+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 <stdlib.h>
+ #include <fcntl.h>
+ #include <limits.h>
++#include <sys/stat.h>
++#include <unistd.h>
+ #include <selinux/selinux.h>
++#include <selinux/label.h>
+ 
++#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 <stdlib.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
++#include <string.h>
+ 
+ #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 <errno.h>
+ # include <stdlib.h>
+ # include <string.h>
++# include <sys/stat.h>
+ # include <unistd.h>
+ # include <selinux/selinux.h>
++# include <selinux/label.h>
+ 
+ # 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 <unistd.h>
+ 
+-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 <stdlib.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
++#include <string.h>
+ 
+ #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 <errno.h>
+ # include <stdlib.h>
+ # include <string.h>
++# include <sys/stat.h>
+ # include <unistd.h>
+ # include <selinux/selinux.h>
++# include <selinux/label.h>
+ 
+ # 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 <unistd.h>
+ 
+-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 <stdlib.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
++#include <string.h>
+ 
+ #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 <errno.h>
+ # include <stdlib.h>
+ # include <string.h>
++# include <sys/stat.h>
+ # include <unistd.h>
+ # include <selinux/selinux.h>
++# include <selinux/label.h>
+ 
+ # 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 <unistd.h>
+ 
+-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 <evgsyr@gmail.com>
+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 <errno.h>.
+(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 <errno.h>
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -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 <errno.h>
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -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 <errno.h>
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -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 <evgsyr@gmail.com>
+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 <evgsyr@gmail.com>
+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 <evgsyr@gmail.com>
+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 <evgsyr@gmail.com>
+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 329ce61..5f47339 100644
--- a/SPECS/strace.spec
+++ b/SPECS/strace.spec
@@ -1,7 +1,7 @@
 Summary: Tracks and displays system calls associated with a running process
 Name: strace
 Version: 5.13
-Release: 5%{?dist}
+Release: 7%{?dist}
 # The test suite is GPLv2+, all the rest is LGPLv2.1+.
 License: LGPL-2.1+ and GPL-2.0+
 # Some distros require Group tag to be present,
@@ -57,6 +57,16 @@ Patch154: 0154-tests-call-setsockopt-directly-in-sockopt-timestamp.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
+
 # Fallback definitions for make_build/make_install macros
 %{?!__make:       %global __make %_bindir/make}
 %{?!__install:    %global __install %_bindir/install}
@@ -85,6 +95,14 @@ received by a process.
 
 %patch167 -p1
 
+%patch168 -p1
+%patch169 -p1
+%patch170 -p1
+%patch171 -p1
+%patch172 -p1
+%patch173 -p1
+%patch174 -p1
+
 echo -n %version-%release > .tarball-version
 echo -n 2021 > .year
 echo -n 2021-07-20 > doc/.strace.1.in.date
@@ -141,6 +159,13 @@ echo 'END OF TEST SUITE INFORMATION'
 %{_mandir}/man1/*
 
 %changelog
+* Mon Feb 07 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-7
+- Update tests-m32 and tests-mx32 with --secontext=mismatch option support
+  changes (#2046264).
+
+* Wed Jan 19 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-6
+- Add --secontext=mismatch option support (#2038965).
+
 * Wed Jan 05 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-5
 - Fix incorrect ifname printing buffer size (#2028166).