From d37035c0ad379a4d13684328edb11c5d51f9b8c2 Mon Sep 17 00:00:00 2001 From: James Antill Date: Mon, 27 Feb 2023 13:09:41 -0500 Subject: [PATCH] Import rpm: c8s --- .gitignore | 2 + ...ree-allocated-data-on-the-error-path.patch | 77 + ...T-macros-add-MASK-macros-add-_SAFE-m.patch | 70 + 0152-trie-use-BIT-and-MASK-macros.patch | 151 + ..._params-access-in-tee_fetch_buf_data.patch | 52 + ...ndex-fix-IFNAME_QUOTED_SZ-definition.patch | 55 + 0168-m4-fix-st_SELINUX-check.patch | 208 + ...ying-of-expected-context-upon-mismat.patch | 6958 +++++++++++++++++ ...et-errno-before-SELinux-context-mani.patch | 122 + ...econtext-add-secontext-field-getters.patch | 356 + ...vide-fallback-values-for-secontext-f.patch | 181 + ...eliminate-separate-secontext_format-.patch | 63 + ...et-context-to-the-expected-one-if-a-.patch | 190 + 2001-limit-qual_fault-scope-on-aarch64.patch | 57 + 2003-undef-ARRAY_SIZE.patch | 17 + ...tl-semctl-shmctl-backport-workaround.patch | 135 + sources | 1 + strace.spec | 734 ++ 18 files changed, 9429 insertions(+) create mode 100644 .gitignore create mode 100644 0150-filter_qualify-free-allocated-data-on-the-error-path.patch create mode 100644 0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch create mode 100644 0152-trie-use-BIT-and-MASK-macros.patch create mode 100644 0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch create mode 100644 0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch create mode 100644 0168-m4-fix-st_SELINUX-check.patch create mode 100644 0169-Implement-displaying-of-expected-context-upon-mismat.patch create mode 100644 0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch create mode 100644 0171-tests-secontext-add-secontext-field-getters.patch create mode 100644 0172-tests-linkat-provide-fallback-values-for-secontext-f.patch create mode 100644 0173-tests-secontext-eliminate-separate-secontext_format-.patch create mode 100644 0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch create mode 100644 2001-limit-qual_fault-scope-on-aarch64.patch create mode 100644 2003-undef-ARRAY_SIZE.patch create mode 100644 2004-glibc-msgctl-semctl-shmctl-backport-workaround.patch create mode 100644 sources create mode 100644 strace.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4940b91 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/strace-5.13.tar.xz +/strace-5.13.tar.xz diff --git a/0150-filter_qualify-free-allocated-data-on-the-error-path.patch b/0150-filter_qualify-free-allocated-data-on-the-error-path.patch new file mode 100644 index 0000000..7043b2f --- /dev/null +++ b/0150-filter_qualify-free-allocated-data-on-the-error-path.patch @@ -0,0 +1,77 @@ +From a034f8a50cbe15d250457ed2eefbf9db059f724f Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Wed, 18 Aug 2021 21:48:38 +0200 +Subject: [PATCH 147/150] filter_qualify: free allocated data on the error path + exit of parse_poke_token + +While not terribly required due to the fact that issues with option +parsing lead to program termination, these changes avoid leaking data +allocated in the function's scope and not stored elsewhere, which might +come handy if it ever be used dynamically during the runtime. + +This also has been reported as resource leaks by covscan, and these +changes should calm it. + +* src/filter_qualify.c (parse_poke_token): Go to err label instead of +returning right away; free poke->data, poke, and str_tokenized before +returning false. + +References: https://bugzilla.redhat.com/show_bug.cgi?id=1995509 +--- + src/filter_qualify.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git a/src/filter_qualify.c b/src/filter_qualify.c +index df05496..a1a6471 100644 +--- a/src/filter_qualify.c ++++ b/src/filter_qualify.c +@@ -169,34 +169,40 @@ parse_poke_token(const char *input, struct inject_opts *fopts, bool isenter) + poke->is_enter = isenter; + + if ((val = STR_STRIP_PREFIX(token, "@arg")) == token) +- return false; ++ goto err; + if ((val[0] >= '1') && (val[0] <= '7')) { + poke->arg_no = val[0] - '0'; + } else { +- return false; ++ goto err; + } + if (val[1] != '=') +- return false; ++ goto err; + val += 2; + + data_len = strlen(val); + if ((data_len == 0) || (data_len % 2) || (data_len > 2048)) +- return false; ++ goto err; + data_len /= 2; + poke->data_len = data_len; + poke->data = xmalloc(data_len); + + for (size_t i = 0; i < data_len; i++) + if (sscanf(&val[2 * i], "%2hhx", &poke->data[i]) != 1) +- return false; ++ goto err; + + if (poke_add(fopts->data.poke_idx, poke)) +- return false; ++ goto err; + } + free(str_tokenized); + + fopts->data.flags |= flag; + return true; ++ ++err: ++ free(poke->data); ++ free(poke); ++ free(str_tokenized); ++ return false; + } + + static bool +-- +2.1.4 + diff --git a/0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch b/0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch new file mode 100644 index 0000000..6ee45fb --- /dev/null +++ b/0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch @@ -0,0 +1,70 @@ +From 3f3dd44f1964c54b55e8c84343579bd7c1924df5 Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Wed, 18 Aug 2021 21:49:12 +0200 +Subject: [PATCH 148/150] macros: expand BIT macros, add MASK macros; add + *_SAFE macros + +These macros might make reading a code that often converts between powers +of 2 and values/masks a bit easier; moreover, the *_SAFE versions should +help in cases where the shift values are expected to be equal to the type +bit width (which lead to UB otherwise). + +Switching from BIT to BIT32 should also clarify bitness, which may be somewhat +murky at times (cf. printxval, printflags, and printxvals). + +* src/macros.h [!BIT] (BIT): Rename to... +[!BIT32] (BIT32): ...this. +[!BIT64] (BIT64): New macro. +[!MASK32] (MASK32): Likewise. +[!MASK64] (MASK64): Likewise. +(BIT32_SAFE, BIT64_SAFE, MASK32_SAFE, MASK64_SAFE): New macros. +(FLAG): Use BIT32. +--- + src/macros.h | 30 +++++++++++++++++++++++++++--- + 1 file changed, 27 insertions(+), 3 deletions(-) + +diff --git a/src/macros.h b/src/macros.h +index 467f5d0..2d7a83d 100644 +--- a/src/macros.h ++++ b/src/macros.h +@@ -78,10 +78,34 @@ is_filled(const char *ptr, char fill, size_t size) + # define IS_ARRAY_ZERO(arr_) \ + is_filled((const char *) (arr_), 0, sizeof(arr_) + MUST_BE_ARRAY(arr_)) + +-# ifndef BIT +-# define BIT(x_) (1U << (x_)) ++# ifndef BIT32 ++# define BIT32(x_) (1U << (x_)) + # endif + +-# define FLAG(name_) name_ = BIT(name_##_BIT) ++# ifndef BIT64 ++# define BIT64(x_) (1ULL << (x_)) ++# endif ++ ++# ifndef MASK32 ++# define MASK32(x_) (BIT32(x_) - 1U) ++# endif ++ ++# ifndef MASK64 ++# define MASK64(x_) (BIT64(x_) - 1ULL) ++# endif ++ ++/* ++ * "Safe" versions that avoid UB for values that are >= type bit size ++ * (the usually expected behaviour of the bit shift in that case is zero, ++ * but at least powerpc is notorious for returning the input value when shift ++ * by 64 bits is performed). ++ */ ++ ++# define BIT32_SAFE(x_) ((x_) < 32 ? BIT32(x_) : 0) ++# define BIT64_SAFE(x_) ((x_) < 64 ? BIT64(x_) : 0) ++# define MASK32_SAFE(x_) (BIT32_SAFE(x_) - 1U) ++# define MASK64_SAFE(x_) (BIT64_SAFE(x_) - 1ULL) ++ ++# define FLAG(name_) name_ = BIT32(name_##_BIT) + + #endif /* !STRACE_MACROS_H */ +-- +2.1.4 + diff --git a/0152-trie-use-BIT-and-MASK-macros.patch b/0152-trie-use-BIT-and-MASK-macros.patch new file mode 100644 index 0000000..91c6fe3 --- /dev/null +++ b/0152-trie-use-BIT-and-MASK-macros.patch @@ -0,0 +1,151 @@ +From 8ef5456338a947944cc03b95c22c837af5884ddc Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Wed, 18 Aug 2021 21:51:22 +0200 +Subject: [PATCH 149/150] trie: use BIT* and MASK* macros + +This makes reading the code a bit easier. It also solves some issues +where there is a hypothertical possibility of having bit shifts of size +64, by virtue of using the *_SAFE macros (that should silence some +reported "left shifting by more than 63 bits has undefined behavior" +covscan issues). + +* src/trie.c (trie_create): Use BIT32, MASK64. +(trie_create_data_block): Use BIT32, change iterator variable type +to size_t. +(trie_get_node): Use BIT64, MASK64. +(trie_data_block_calc_pos): Use BIT32, MASK64, MASK64_SAFE. +(trie_iterate_keys_node): Use BIT64, MASK64, MASK64_SAFE. +(trie_free_node): Use BIT64. +--- + src/trie.c | 34 +++++++++++++++++----------------- + 1 file changed, 17 insertions(+), 17 deletions(-) + +diff --git a/src/trie.c b/src/trie.c +index 586ff25..0a231e4 100644 +--- a/src/trie.c ++++ b/src/trie.c +@@ -15,6 +15,7 @@ + #include + + #include "trie.h" ++#include "macros.h" + #include "xmalloc.h" + + static const uint8_t ptr_sz_lg = (sizeof(void *) == 8 ? 6 : 5); +@@ -87,7 +88,7 @@ trie_create(uint8_t key_size, uint8_t item_size_lg, uint8_t node_key_bits, + / t->node_key_bits; + + if (item_size_lg != 6) +- t->empty_value &= (((uint64_t) 1 << (1 << t->item_size_lg)) - 1); ++ t->empty_value &= MASK64(BIT32(t->item_size_lg)); + + return t; + } +@@ -96,8 +97,8 @@ static void * + trie_create_data_block(struct trie *t) + { + uint64_t fill_value = t->empty_value; +- for (int i = 1; i < 1 << (6 - t->item_size_lg); i++) { +- fill_value <<= (1 << t->item_size_lg); ++ for (size_t i = 1; i < BIT32(6 - t->item_size_lg); i++) { ++ fill_value <<= BIT32(t->item_size_lg); + fill_value |= t->empty_value; + } + +@@ -105,7 +106,7 @@ trie_create_data_block(struct trie *t) + if (sz < 6) + sz = 6; + +- size_t count = 1 << (sz - 6); ++ size_t count = BIT32(sz - 6); + uint64_t *data_block = xcalloc(count, 8); + + for (size_t i = 0; i < count; i++) +@@ -119,7 +120,7 @@ trie_get_node(struct trie *t, uint64_t key, bool auto_create) + { + void **cur_node = &(t->data); + +- if (t->key_size < 64 && key > (uint64_t) 1 << t->key_size) ++ if (t->key_size < 64 && key > MASK64(t->key_size)) + return NULL; + + for (uint8_t cur_depth = 0; cur_depth <= t->max_depth; cur_depth++) { +@@ -133,13 +134,13 @@ trie_get_node(struct trie *t, uint64_t key, bool auto_create) + if (cur_depth == t->max_depth) + *cur_node = trie_create_data_block(t); + else +- *cur_node = xcalloc(1 << sz, 1); ++ *cur_node = xcalloc(BIT64(sz), 1); + } + + if (cur_depth == t->max_depth) + break; + +- size_t pos = (key >> offs) & ((1 << (sz - ptr_sz_lg)) - 1); ++ size_t pos = (key >> offs) & MASK64(sz - ptr_sz_lg); + cur_node = (((void **) (*cur_node)) + pos); + } + +@@ -152,7 +153,7 @@ trie_data_block_calc_pos(struct trie *t, uint64_t key, + { + uint64_t key_mask; + +- key_mask = (1 << t->data_block_key_bits) - 1; ++ key_mask = MASK64(t->data_block_key_bits); + *pos = (key & key_mask) >> (6 - t->item_size_lg); + + if (t->item_size_lg == 6) { +@@ -161,10 +162,10 @@ trie_data_block_calc_pos(struct trie *t, uint64_t key, + return; + } + +- key_mask = (1 << (6 - t->item_size_lg)) - 1; +- *offs = (key & key_mask) * (1 << t->item_size_lg); ++ key_mask = MASK64(6 - t->item_size_lg); ++ *offs = (key & key_mask) << t->item_size_lg; + +- *mask = (((uint64_t) 1 << (1 << t->item_size_lg)) - 1) << *offs; ++ *mask = MASK64_SAFE(BIT32(t->item_size_lg)) << *offs; + } + + bool +@@ -211,7 +212,7 @@ trie_iterate_keys_node(struct trie *t, + return 0; + + if (t->key_size < 64) { +- uint64_t key_max = ((uint64_t) 1 << t->key_size) - 1; ++ uint64_t key_max = MASK64(t->key_size); + if (end > key_max) + end = key_max; + } +@@ -228,15 +229,14 @@ trie_iterate_keys_node(struct trie *t, + t->key_size : + trie_get_node_bit_offs(t, depth - 1); + +- uint64_t first_key_in_node = start & +- (uint64_t) -1 << parent_node_bit_off; ++ uint64_t first_key_in_node = start & ~MASK64_SAFE(parent_node_bit_off); + + uint8_t node_bit_off = trie_get_node_bit_offs(t, depth); + uint8_t node_key_bits = parent_node_bit_off - node_bit_off; +- uint64_t mask = ((uint64_t) 1 << (node_key_bits)) - 1; ++ uint64_t mask = MASK64_SAFE(node_key_bits); + uint64_t start_index = (start >> node_bit_off) & mask; + uint64_t end_index = (end >> node_bit_off) & mask; +- uint64_t child_key_count = (uint64_t) 1 << node_bit_off; ++ uint64_t child_key_count = BIT64(node_bit_off); + + uint64_t count = 0; + +@@ -274,7 +274,7 @@ trie_free_node(struct trie *t, void *node, uint8_t depth) + if (depth >= t->max_depth) + goto free_node; + +- size_t sz = 1 << (trie_get_node_size(t, depth) - ptr_sz_lg); ++ size_t sz = BIT64(trie_get_node_size(t, depth) - ptr_sz_lg); + for (size_t i = 0; i < sz; i++) + trie_free_node(t, ((void **) node)[i], depth + 1); + +-- +2.1.4 + diff --git a/0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch b/0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch new file mode 100644 index 0000000..56aa8a1 --- /dev/null +++ b/0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch @@ -0,0 +1,52 @@ +From 3a68f90c2a5a208b475cc2014f85ae04541ec5b6 Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Fri, 20 Aug 2021 21:31:01 +0200 +Subject: [PATCH 150/150] tee: rewrite num_params access in tee_fetch_buf_data + +Pointer to num_params field of the fetched structure is passed in a +separate function argument which provokes covscan complaints about +uninitialised accesses and also tingles my aliasing rules senses. +Rewrite to access it via the arg_struct argument which is fetched +earlier in the function flow. + +* src/tee.c (TEE_FETCH_BUF_DATA): Change &arg_.num_params +to offsetof(typeof(arg_), num_params). +(tee_fetch_buf_data): Accept offset of the num_params field instead +of pointer to it; reconstruct the num_params pointer using it. +--- + src/tee.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/tee.c b/src/tee.c +index f9eda52..d7e9b15 100644 +--- a/src/tee.c ++++ b/src/tee.c +@@ -33,7 +33,7 @@ struct tee_ioctl_shm_register_fd_data { + + #define TEE_FETCH_BUF_DATA(buf_, arg_, params_) \ + tee_fetch_buf_data(tcp, arg, &buf_, sizeof(arg_), \ +- &arg_, &arg_.num_params, \ ++ &arg_, offsetof(typeof(arg_), num_params), \ + params_) + + /* session id is printed as 0x%x in libteec */ +@@ -56,7 +56,7 @@ tee_fetch_buf_data(struct tcb *const tcp, + struct tee_ioctl_buf_data *buf, + size_t arg_size, + void *arg_struct, +- unsigned *num_params, ++ size_t num_params_offs, + uint64_t *params) + { + if (umove_or_printaddr(tcp, arg, buf)) +@@ -69,6 +69,7 @@ tee_fetch_buf_data(struct tcb *const tcp, + tee_print_buf(buf); + return RVAL_IOCTL_DECODED; + } ++ uint32_t *num_params = (uint32_t *) (arg_struct + num_params_offs); + if (entering(tcp) && + (arg_size + TEE_IOCTL_PARAM_SIZE(*num_params) != buf->buf_len)) { + /* +-- +2.1.4 + diff --git a/0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch b/0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch new file mode 100644 index 0000000..9f19614 --- /dev/null +++ b/0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch @@ -0,0 +1,55 @@ +From e27b06773eaf5c0307bcc5637d7457be9be1e6ea Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Wed, 1 Dec 2021 17:11:02 +0100 +Subject: [PATCH] print_ifindex: fix IFNAME_QUOTED_SZ definition + +sizeof(IFNAMSIZ) instead of IFNAMSIZ was mistakenly used +for IFNAME_QUOTED_SZ initial definition in commit v4.23~87 +"print_ifindex: respect xlat style settings". + +* src/print_ifindex.c (IFNAME_QUOTED_SZ): Use IFNAMSIZ +instead of sizeof(IFNAMSIZ). +* NEWS: Mention it. + +Reported-by: Paulo Andrade +Suggested-by: Paulo Andrade +Fixes: v4.23~87 "print_ifindex: respect xlat style settings" +References: https://bugzilla.redhat.com/show_bug.cgi?id=2028146 +--- + NEWS | 4 ++++ + src/print_ifindex.c | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/NEWS b/NEWS +index 9bab673..a3036b8 100644 +--- a/NEWS ++++ b/NEWS +@@ -16,6 +16,12 @@ Noteworthy changes in release ?.?? (????-??-??) + PTRACE_*, RTM_*, RTPROT_*, TRAP_*, UFFD_*, UFFDIO_*, and V4L2_* constants. + * Updated lists of ioctl commands from Linux 5.13. + ++ * Bug fixes ++ * Fixed insufficient buffer size used for network interface name printing, ++ that previously led to assertions on attempts of printing interface names ++ that require quoting, for example, names longer than 4 characters in -xx ++ mode (addresses RHBZ bug #2028146). ++ + * Portability + * On powerpc and powerpc64, linux kernel >= 2.6.23 is required. + Older versions without a decent PTRACE_GETREGS support will not work. +diff --git a/src/print_ifindex.c b/src/print_ifindex.c +index ec48093..dc9d592 100644 +--- a/src/print_ifindex.c ++++ b/src/print_ifindex.c +@@ -13,7 +13,7 @@ + + # define INI_PFX "if_nametoindex(\"" + # define INI_SFX "\")" +-# define IFNAME_QUOTED_SZ (sizeof(IFNAMSIZ) * 4 + 3) ++# define IFNAME_QUOTED_SZ (IFNAMSIZ * 4 + 3) + + const char * + get_ifname(const unsigned int ifindex) +-- +2.1.4 + diff --git a/0168-m4-fix-st_SELINUX-check.patch b/0168-m4-fix-st_SELINUX-check.patch new file mode 100644 index 0000000..9c3203f --- /dev/null +++ b/0168-m4-fix-st_SELINUX-check.patch @@ -0,0 +1,208 @@ +From b8f375c2c8140e759122bca3e3469386d3ba5184 Mon Sep 17 00:00:00 2001 +From: "Dmitry V. Levin" +Date: Mon, 29 Nov 2021 08:00:00 +0000 +Subject: [PATCH 168/174] m4: fix st_SELINUX check + +* m4/st_selinux.m4: Make sure selinux support is enabled only if +all expected functions are provided by libselinux. + +Fixes: v5.12~49 "Implement --secontext[=full] option to display SELinux contexts" +--- + m4/st_selinux.m4 | 36 ++++++++++++++++-------------------- + 1 file changed, 16 insertions(+), 20 deletions(-) + +diff --git a/m4/st_selinux.m4 b/m4/st_selinux.m4 +index da72a48..7b24eba 100644 +--- a/m4/st_selinux.m4 ++++ b/m4/st_selinux.m4 +@@ -34,29 +34,25 @@ AS_IF([test "x$with_libselinux" != xno], + AS_IF([test "x$found_selinux_h" = xyes], + [saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $libselinux_LDFLAGS" +- AC_CHECK_LIB([selinux],[getpidcon], +- [libselinux_LIBS="-lselinux" +- enable_secontext=yes +- ], +- [if test "x$with_libselinux" != xcheck; then +- AC_MSG_FAILURE([failed to find getpidcon in libselinux]) +- fi +- ] +- ) +- AC_CHECK_LIB([selinux],[getfilecon], +- [libselinux_LIBS="-lselinux" +- enable_secontext=yes +- ], +- [if test "x$with_libselinux" != xcheck; then +- AC_MSG_FAILURE([failed to find getfilecon in libselinux]) +- fi +- ] ++ missing= ++ for func in getpidcon getfilecon; do ++ AC_CHECK_LIB([selinux], [$func], [:], ++ [missing="$missing $func"]) ++ done ++ AS_IF([test "x$missing" = x], ++ [libselinux_LIBS="-lselinux" ++ enable_secontext=yes ++ ], ++ [AS_IF([test "x$with_libselinux" != xcheck], ++ [AC_MSG_FAILURE([failed to find in libselinux:$missing])] ++ ) ++ ] + ) + LDFLAGS="$saved_LDFLAGS" + ], +- [if test "x$with_libselinux" != xcheck; then +- AC_MSG_FAILURE([failed to find selinux.h]) +- fi ++ [AS_IF([test "x$with_libselinux" != xcheck], ++ [AC_MSG_FAILURE([failed to find selinux.h])] ++ ) + ] + ) + ] +--- old/configure 2022-02-07 20:17:58.364068436 +0100 ++++ new/configure 2022-02-07 20:19:17.092067347 +0100 +@@ -18437,9 +18437,12 @@ + if test "x$found_selinux_h" = xyes; then : + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $libselinux_LDFLAGS" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpidcon in -lselinux" >&5 +-$as_echo_n "checking for getpidcon in -lselinux... " >&6; } +-if ${ac_cv_lib_selinux_getpidcon+:} false; then : ++ missing= ++ for func in getpidcon getfilecon; do ++ as_ac_Lib=`$as_echo "ac_cv_lib_selinux_$func" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $func in -lselinux" >&5 ++$as_echo_n "checking for $func in -lselinux... " >&6; } ++if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +@@ -18453,101 +18456,59 @@ + #ifdef __cplusplus + extern "C" + #endif +-char getpidcon (); ++char $func (); + int + main () + { +-return getpidcon (); ++return $func (); + ; + return 0; + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_selinux_getpidcon=yes ++ eval "$as_ac_Lib=yes" + else +- ac_cv_lib_selinux_getpidcon=no ++ eval "$as_ac_Lib=no" + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_getpidcon" >&5 +-$as_echo "$ac_cv_lib_selinux_getpidcon" >&6; } +-if test "x$ac_cv_lib_selinux_getpidcon" = xyes; then : +- libselinux_LIBS="-lselinux" +- enable_secontext=yes +- ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : ++ : + else +- if test "x$with_libselinux" != xcheck; then +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "failed to find getpidcon in libselinux +-See \`config.log' for more details" "$LINENO" 5; } +- fi +- +- ++ missing="$missing $func" + fi + +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getfilecon in -lselinux" >&5 +-$as_echo_n "checking for getfilecon in -lselinux... " >&6; } +-if ${ac_cv_lib_selinux_getfilecon+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lselinux $LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char getfilecon (); +-int +-main () +-{ +-return getfilecon (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_selinux_getfilecon=yes +-else +- ac_cv_lib_selinux_getfilecon=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_getfilecon" >&5 +-$as_echo "$ac_cv_lib_selinux_getfilecon" >&6; } +-if test "x$ac_cv_lib_selinux_getfilecon" = xyes; then : ++ done ++ if test "x$missing" = x; then : + libselinux_LIBS="-lselinux" +- enable_secontext=yes ++ enable_secontext=yes + + else +- if test "x$with_libselinux" != xcheck; then +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++ if test "x$with_libselinux" != xcheck; then : ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "failed to find getfilecon in libselinux ++as_fn_error $? "failed to find in libselinux:$missing + See \`config.log' for more details" "$LINENO" 5; } +- fi +- + + fi + ++ ++fi + LDFLAGS="$saved_LDFLAGS" + + else +- if test "x$with_libselinux" != xcheck; then +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++ if test "x$with_libselinux" != xcheck; then : ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + as_fn_error $? "failed to find selinux.h + See \`config.log' for more details" "$LINENO" 5; } +- fi ++ ++fi + + + fi +-- +2.1.4 + diff --git a/0169-Implement-displaying-of-expected-context-upon-mismat.patch b/0169-Implement-displaying-of-expected-context-upon-mismat.patch new file mode 100644 index 0000000..c1e08db --- /dev/null +++ b/0169-Implement-displaying-of-expected-context-upon-mismat.patch @@ -0,0 +1,6958 @@ +From 8b07b18a44f7e0ebdb65b791d79d588dd90b70b6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Tue, 5 Oct 2021 08:36:22 +0200 +Subject: [PATCH 169/174] Implement displaying of expected context upon + mismatch + +New option to --secontext=... (also available as -e secontext=...) +- mismatch: print expected context on mismatch + +When using 'mismatch', an additional check is made on the context by +reading the context database and comparing the output after stripping +the unwanted part (e.g. stripping nothing in 'full' mode, keeping the +type only in default mode): +- if it differs, prints the expected context after printing '!!' +- if not, don't print anything + +Example with /home/rmetrich/GIT/strace/autom4te.cache/output.3 file: + +---- +$ matchpathcon /home/rmetrich/GIT/strace/autom4te.cache/output.3 +/home/rmetrich/GIT/strace/autom4te.cache/output.3 unconfined_u:object_r:user_home_t:s0 + +$ ls -Z /home/rmetrich/GIT/strace/autom4te.cache/output.3 +system_u:object_r:user_home_t:s0 /home/rmetrich/GIT/strace/autom4te.cache/output.3 +---- + +From above, we see the user part differs ('unconfined_u' vs 'system_u') + +Output in '!full' mode (no diff found on type): + +---- +$ strace --secontext=mismatch -e statx stat /home/rmetrich/GIT/strace/autom4te.cache/output.3 +... statx(AT_FDCWD, "/home/rmetrich/GIT/strace/autom4te.cache/output.3" [user_home_t], ... +---- + +Output in 'full' mode (diff found on user): + +---- +... statx(AT_FDCWD, "/home/rmetrich/GIT/strace/autom4te.cache/output.3" [system_u:object_r:user_home_t:s0!!unconfined_u:object_r:user_home_t:s0], ... +---- + +* NEWS: Mention this change. +* doc/strace.1.in: Document it. +* m4/st_selinux.m4 (st_SELINUX): Check for selabel_open +and selabel_lookup. +* src/filter_qualify.c [ENABLE_SECONTEXT]: Include "secontext.h". +[ENABLE_SECONTEXT] (secontext_set): New variable. +[ENABLE_SECONTEXT] (secontextstr_to_uint, qualify_secontext): New +functions. +(qual_options) [ENABLE_SECONTEXT]: Add "secontext". +* src/secontext.c: Include , , , +"largefile_wrappers.h", "number_set.h", and "xmalloc.h". +(selinux_context, selinux_context_full): Remove. +(getcontext): Use is_number_in_set instead of selinux_context_full. +(selinux_getpidcon): Use is_number_in_set instead of selinux_context. +(get_expected_filecontext): New function. +(selinux_getfdcon, selinux_getfilecon): Use it to print context mismatch +if SECONTEXT_MISMATCH is set in secontext_set. +* src/secontext.h (selinux_context, selinux_context_full): Remove. +(secontext_bits): New enum. +(secontext_set, qualify_secontext, selinux_set_format): New +declarations. +* src/strace.c (SECONTEXT_E_QUAL): New macro. +(usage): Use it, describe --secontext. +(init) [ENABLE_SECONTEXT]: Call qualify_secontext, rename +GETOPT_SECONTEXT to GETOPT_QUAL_SECONTEXT, use is_number_in_set +instead of selinux_context. +(init) [ENABLE_SECONTEXT] (secontext_qual): New variable. +(init) [ENABLE_SECONTEXT] : Use it. +* tests/.gitignore: Add *--secontext_full_mismatch, +*--secontext_full_mismatch.c, *--secontext_mismatch, and +*--secontext_mismatch.c. +* tests/gen_secontext.sh: Generate *--secontext_full_mismatch.c +and *--secontext_mismatch.c. +* tests/gen_tests.in (access--secontext_full_mismatch, +access--secontext_mismatch, chmod--secontext_full_mismatch, +chmod--secontext_mismatch, execve--secontext_full_mismatch, +execve--secontext_mismatch, execveat--secontext_full_mismatch, +execveat--secontext_mismatch, faccessat--secontext_full_mismatch, +faccessat--secontext_mismatch, faccessat-y--secontext_full_mismatch, +faccessat-y--secontext_mismatch, fanotify_mark--secontext_full_mismatch, +fanotify_mark--secontext_mismatch, fchmod--secontext_full_mismatch, +fchmod--secontext_mismatch, fchmod-y--secontext_full_mismatch, +fchmod-y--secontext_mismatch, fchmodat--secontext_full_mismatch, +fchmodat--secontext_mismatch, fchownat--secontext_full_mismatch, +fchownat--secontext_mismatch, file_handle--secontext_full_mismatch, +file_handle--secontext_mismatch, linkat--secontext_full_mismatch, +linkat--secontext_mismatch, open--secontext_full_mismatch, +open--secontext_mismatch, openat--secontext_full_mismatch, +openat--secontext_mismatch): New tests. +* tests/linkat.c: Include . +(main) [PRINT_SECONTEXT_MISMATCH]: Check context mismatch. +* tests/options-syntax.test: Check --secontext and -e secontext syntax. +* tests/secontext.h (secontext_field): New enum. +(secontext_full_file, secontext_short_file): Add "mismatch" argument. +(update_secontext_type): Rename to update_secontext_field, add "field" +argument. +(SECONTEXT_FILE): Conditionalize "mismatch" argument passed to +secontext_full_file and secontext_short_file on +PRINT_SECONTEXT_MISMATCH. +* tests/secontext.c: Include and . +(get_type_from_context, raw_expected_secontext_full_file, +raw_expected_secontext_short_file): New functions. +(raw_secontext_short_file, raw_secontext_short_pid): Use +get_type_from_context. +(secontext_full_file): Add "mismatch" argument, use +raw_expected_secontext_full_file if mismatch is enabled. +(secontext_short_file): Add "mismatch" argument, use +raw_expected_secontext_short_file if mismatch is enabled. +(update_secontext_type): Rename to update_secontext_field, add "field" +argument. + +Co-authored-by: Dmitry V. Levin + +Conflicts: + NEWS + doc/strace.1.in + src/filter_qualify.c + src/strace.c +--- + NEWS | 2 + + doc/strace.1.in | 33 +++++++-- + m4/st_selinux.m4 | 2 +- + src/filter_qualify.c | 29 ++++++++ + src/secontext.c | 114 ++++++++++++++++++++++++++---- + src/secontext.h | 15 +++- + src/strace.c | 49 ++++++++----- + tests/.gitignore | 4 ++ + tests/gen_secontext.sh | 12 +++- + tests/gen_tests.in | 34 ++++++++- + tests/linkat.c | 46 +++++++++++- + tests/options-syntax.test | 14 +++- + tests/secontext.c | 176 ++++++++++++++++++++++++++++++++-------------- + tests/secontext.h | 28 ++++++-- + 14 files changed, 453 insertions(+), 105 deletions(-) + +diff --git a/NEWS b/NEWS +index 969ed11..f7542ea 100644 +--- a/NEWS ++++ b/NEWS +@@ -2,6 +2,8 @@ Noteworthy changes in release 5.13 (2021-07-18) + =============================================== + + * Improvements ++ * Implemented --secontext=mismatch option to find mismatches in SELinux ++ contexts. + * Print netlink data in a more structured way. + * Implemented decoding of NT_PRSTATUS and NT_FPREGSET regsets + of PTRACE_GETREGSET and PTRACE_SETREGSET requests. +diff --git a/doc/strace.1.in b/doc/strace.1.in +index 003e9e5..439243b 100644 +--- a/doc/strace.1.in ++++ b/doc/strace.1.in +@@ -53,7 +53,7 @@ strace \- trace system calls and signals + .OM \-P path + .OM \-p pid + .OP \-\-seccomp\-bpf +-.if '@ENABLE_SECONTEXT_FALSE@'#' .OP \-\-secontext\fR[=full] ++.if '@ENABLE_SECONTEXT_FALSE@'#' .OP \-\-secontext\fR[=\fIformat\fR] + .BR "" { + .OR \-p pid + .BR "" | +@@ -259,6 +259,7 @@ is one of + .BR inject , + .BR status , + .BR quiet " (or " silent " or " silence " or " q ), ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR secontext , + .BR decode\-fds " (or " decode\-fd ), + or + .BR kvm , +@@ -1086,13 +1087,33 @@ and PIDs associated with pidfd file descriptors. + If strace and tracee are in different PID namespaces, print PIDs in + strace's namespace, too. + .if '@ENABLE_SECONTEXT_FALSE@'#' .TP +-.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-\-secontext "[=full]" ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-\-secontext\fR[=\fIformat\fR] ++.if '@ENABLE_SECONTEXT_FALSE@'#' .TQ ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-e\ secontext\fR=\fIformat\fR + .if '@ENABLE_SECONTEXT_FALSE@'#' When SELinux is available and is not disabled, + .if '@ENABLE_SECONTEXT_FALSE@'#' print in square brackets SELinux contexts of +-.if '@ENABLE_SECONTEXT_FALSE@'#' processes, files, and descriptors. When +-.if '@ENABLE_SECONTEXT_FALSE@'#' .B full +-.if '@ENABLE_SECONTEXT_FALSE@'#' is specified, print the complete context (user, +-.if '@ENABLE_SECONTEXT_FALSE@'#' role, type and category) instead of just the type. ++.if '@ENABLE_SECONTEXT_FALSE@'#' processes, files, and descriptors. The ++.if '@ENABLE_SECONTEXT_FALSE@'#' .I format ++.if '@ENABLE_SECONTEXT_FALSE@'#' argument is a comma-separated list of items ++.if '@ENABLE_SECONTEXT_FALSE@'#' being one of the following: ++.if '@ENABLE_SECONTEXT_FALSE@'#' .RS ++.if '@ENABLE_SECONTEXT_FALSE@'#' .TP 18 ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR full ++.if '@ENABLE_SECONTEXT_FALSE@'#' Print the full context (user, role, type level ++.if '@ENABLE_SECONTEXT_FALSE@'#' and category). ++.if '@ENABLE_SECONTEXT_FALSE@'#' .TQ ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR mismatch ++.if '@ENABLE_SECONTEXT_FALSE@'#' Also print the context recorded by the SELinux ++.if '@ENABLE_SECONTEXT_FALSE@'#' database in case the current context differs. ++.if '@ENABLE_SECONTEXT_FALSE@'#' The latter is printed after two exclamation marks (!!). ++.if '@ENABLE_SECONTEXT_FALSE@'#' .RE ++.if '@ENABLE_SECONTEXT_FALSE@'#' .IP ++.if '@ENABLE_SECONTEXT_FALSE@'#' The default value for ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-\-secontext ++.if '@ENABLE_SECONTEXT_FALSE@'#' is ++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR !full,mismatch ++.if '@ENABLE_SECONTEXT_FALSE@'#' which prints only the type instead of full context ++.if '@ENABLE_SECONTEXT_FALSE@'#' and doesn't check for context mismatches. + .SS Statistics + .TP 12 + .B \-c +diff --git a/m4/st_selinux.m4 b/m4/st_selinux.m4 +index 7b24eba..60e23a9 100644 +--- a/m4/st_selinux.m4 ++++ b/m4/st_selinux.m4 +@@ -35,7 +35,7 @@ AS_IF([test "x$with_libselinux" != xno], + [saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $libselinux_LDFLAGS" + missing= +- for func in getpidcon getfilecon; do ++ for func in getpidcon getfilecon selabel_open selabel_lookup; do + AC_CHECK_LIB([selinux], [$func], [:], + [missing="$missing $func"]) + done +diff --git a/src/filter_qualify.c b/src/filter_qualify.c +index df05496..a5b4fe7 100644 +--- a/src/filter_qualify.c ++++ b/src/filter_qualify.c +@@ -14,6 +14,9 @@ + #include "poke.h" + #include "retval.h" + #include "static_assert.h" ++#ifdef ENABLE_SECONTEXT ++# include "secontext.h" ++#endif + + struct number_set *read_set; + struct number_set *write_set; +@@ -591,6 +594,29 @@ qualify_kvm(const char *const str) + } + } + ++#ifdef ENABLE_SECONTEXT ++struct number_set *secontext_set; ++ ++static int ++secontextstr_to_uint(const char *s) ++{ ++ static const struct xlat_data secontext_strs[] = { ++ { SECONTEXT_FULL, "full" }, ++ { SECONTEXT_MISMATCH, "mismatch" }, ++ }; ++ ++ return (int) find_arg_val(s, secontext_strs, -1ULL, -1ULL); ++} ++ ++void ++qualify_secontext(const char *const str) ++{ ++ if (!secontext_set) ++ secontext_set = alloc_number_set_array(1); ++ qualify_tokens(str, secontext_set, secontextstr_to_uint, "secontext"); ++} ++#endif ++ + static const struct qual_options { + const char *name; + void (*qualify)(const char *); +@@ -622,6 +648,9 @@ static const struct qual_options { + { "kvm", qualify_kvm }, + { "decode-fd", qualify_decode_fd }, + { "decode-fds", qualify_decode_fd }, ++#ifdef ENABLE_SECONTEXT ++ { "secontext", qualify_secontext }, ++#endif + }; + + void +diff --git a/src/secontext.c b/src/secontext.c +index ccf9b34..9a91386 100644 +--- a/src/secontext.c ++++ b/src/secontext.c +@@ -10,14 +10,17 @@ + #include + #include + #include ++#include ++#include + #include ++#include + ++#include "largefile_wrappers.h" ++#include "number_set.h" + #include "secontext.h" ++#include "xmalloc.h" + #include "xstring.h" + +-bool selinux_context = false; +-bool selinux_context_full = false; +- + static int + getcontext(int rc, char **secontext, char **result) + { +@@ -25,7 +28,7 @@ getcontext(int rc, char **secontext, char **result) + return rc; + + *result = NULL; +- if (!selinux_context_full) { ++ if (!is_number_in_set(SECONTEXT_FULL, secontext_set)) { + char *saveptr = NULL; + char *secontext_copy = xstrdup(*secontext); + const char *token; +@@ -59,6 +62,36 @@ getcontext(int rc, char **secontext, char **result) + freecon(*secontext); + return 0; + } ++ ++static int ++get_expected_filecontext(const char *path, char **result) ++{ ++ static struct selabel_handle *hdl; ++ ++ if (!hdl) { ++ static bool disabled; ++ if (disabled) ++ return -1; ++ ++ hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0); ++ if (!hdl) { ++ perror_msg("could not open SELinux database, disabling " ++ "context mismatch checking"); ++ disabled = true; ++ return -1; ++ } ++ } ++ ++ strace_stat_t stb; ++ if (stat_file(path, &stb) < 0) { ++ return -1; ++ } ++ ++ char *secontext; ++ return getcontext(selabel_lookup(hdl, &secontext, path, stb.st_mode), ++ &secontext, result); ++} ++ + /* + * Retrieves the SELinux context of the given PID (extracted from the tcb). + * Memory must be freed. +@@ -67,7 +100,7 @@ getcontext(int rc, char **secontext, char **result) + int + selinux_getpidcon(struct tcb *tcp, char **result) + { +- if (!selinux_context) ++ if (number_set_array_is_empty(secontext_set, 0)) + return -1; + + int proc_pid = 0; +@@ -87,7 +120,7 @@ selinux_getpidcon(struct tcb *tcp, char **result) + int + selinux_getfdcon(pid_t pid, int fd, char **result) + { +- if (!selinux_context || pid <= 0 || fd < 0) ++ if (number_set_array_is_empty(secontext_set, 0) || pid <= 0 || fd < 0) + return -1; + + int proc_pid = 0; +@@ -99,7 +132,33 @@ selinux_getfdcon(pid_t pid, int fd, char **result) + xsprintf(linkpath, "/proc/%u/fd/%u", proc_pid, fd); + + char *secontext; +- return getcontext(getfilecon(linkpath, &secontext), &secontext, result); ++ int rc = getcontext(getfilecon(linkpath, &secontext), &secontext, result); ++ if (rc < 0 || !is_number_in_set(SECONTEXT_MISMATCH, secontext_set)) ++ return rc; ++ ++ /* ++ * We need to resolve the path, because selabel_lookup() doesn't ++ * resolve anything. Using readlink() is sufficient here. ++ */ ++ ++ char buf[PATH_MAX]; ++ ssize_t n = readlink(linkpath, buf, sizeof(buf)); ++ if ((size_t) n >= sizeof(buf)) ++ return 0; ++ buf[n] = '\0'; ++ ++ char *expected; ++ if (get_expected_filecontext(buf, &expected) < 0) ++ return 0; ++ if (strcmp(expected, *result) == 0) { ++ free(expected); ++ return 0; ++ } ++ char *final_result = xasprintf("%s!!%s", *result, expected); ++ free(expected); ++ free(*result); ++ *result = final_result; ++ return 0; + } + + /* +@@ -110,7 +169,7 @@ selinux_getfdcon(pid_t pid, int fd, char **result) + int + selinux_getfilecon(struct tcb *tcp, const char *path, char **result) + { +- if (!selinux_context) ++ if (number_set_array_is_empty(secontext_set, 0)) + return -1; + + int proc_pid = 0; +@@ -118,22 +177,49 @@ selinux_getfilecon(struct tcb *tcp, const char *path, char **result) + if (!proc_pid) + return -1; + +- int ret = -1; ++ int rc = -1; + char fname[PATH_MAX]; + + if (path[0] == '/') +- ret = snprintf(fname, sizeof(fname), "/proc/%u/root%s", ++ rc = snprintf(fname, sizeof(fname), "/proc/%u/root%s", + proc_pid, path); + else if (tcp->last_dirfd == AT_FDCWD) +- ret = snprintf(fname, sizeof(fname), "/proc/%u/cwd/%s", ++ rc = snprintf(fname, sizeof(fname), "/proc/%u/cwd/%s", + proc_pid, path); + else if (tcp->last_dirfd >= 0 ) +- ret = snprintf(fname, sizeof(fname), "/proc/%u/fd/%u/%s", ++ rc = snprintf(fname, sizeof(fname), "/proc/%u/fd/%u/%s", + proc_pid, tcp->last_dirfd, path); + +- if ((unsigned int) ret >= sizeof(fname)) ++ if ((unsigned int) rc >= sizeof(fname)) + return -1; + + char *secontext; +- return getcontext(getfilecon(fname, &secontext), &secontext, result); ++ rc = getcontext(getfilecon(fname, &secontext), &secontext, result); ++ if (rc < 0 || !is_number_in_set(SECONTEXT_MISMATCH, secontext_set)) ++ return rc; ++ ++ /* ++ * We need to fully resolve the path, because selabel_lookup() doesn't ++ * resolve anything. Using realpath() is the only solution here to make ++ * sure the path is canonicalized. ++ */ ++ ++ char *resolved = realpath(fname, NULL); ++ if (!resolved) ++ return 0; ++ ++ char *expected; ++ rc = get_expected_filecontext(resolved, &expected); ++ free(resolved); ++ if (rc < 0) ++ return 0; ++ if (strcmp(expected, *result) == 0) { ++ free(expected); ++ return 0; ++ } ++ char *final_result = xasprintf("%s!!%s", *result, expected); ++ free(expected); ++ free(*result); ++ *result = final_result; ++ return 0; + } +diff --git a/src/secontext.h b/src/secontext.h +index 1ed88c7..39222d0 100644 +--- a/src/secontext.h ++++ b/src/secontext.h +@@ -11,11 +11,22 @@ + + # include "defs.h" + +-extern bool selinux_context; +-extern bool selinux_context_full; ++void qualify_secontext(const char *const str); ++ ++enum secontext_bits { ++ /* Display full context instead of type only */ ++ SECONTEXT_FULL, ++ /* Check for context mismatch */ ++ SECONTEXT_MISMATCH, ++ ++ NUMBER_OF_SECONTEXT_BITS ++}; ++ ++extern struct number_set *secontext_set; + + int selinux_getfdcon(pid_t pid, int fd, char **context); + int selinux_getfilecon(struct tcb *tcp, const char *path, char **context); + int selinux_getpidcon(struct tcb *tcp, char **context); ++void selinux_set_format(const char *optarg); + + #endif /* !STRACE_SECONTEXT_H */ +diff --git a/src/strace.c b/src/strace.c +index fb42fe9..0a18478 100644 +--- a/src/strace.c ++++ b/src/strace.c +@@ -264,9 +264,11 @@ usage(void) + # define K_OPT "" + #endif + #ifdef ENABLE_SECONTEXT +-# define SECONTEXT_OPT "[--secontext[=full]]\n" ++# define SECONTEXT_OPT " [--secontext[=FORMAT]]\n" ++# define SECONTEXT_E_QUAL ", secontext" + #else + # define SECONTEXT_OPT "" ++# define SECONTEXT_E_QUAL "" + #endif + + printf("\ +@@ -282,7 +284,7 @@ Usage: strace [-ACdffhi" K_OPT "qqrtttTvVwxxyyzZ] [-I N] [-b execve] [-e EXPR].. + General:\n\ + -e EXPR a qualifying expression: OPTION=[!]all or OPTION=[!]VAL1[,VAL2]...\n\ + options: trace, abbrev, verbose, raw, signal, read, write, fault,\n\ +- inject, status, quiet, kvm, decode-fds\n\ ++ inject, status, quiet, kvm, decode-fds" SECONTEXT_E_QUAL "\n\ + \n\ + Startup:\n\ + -E VAR=VAL, --env=VAR=VAL\n\ +@@ -358,6 +360,19 @@ Output format:\n\ + path (file path),\n\ + pidfd (associated PID for pidfds),\n\ + socket (protocol-specific information for socket descriptors)\n\ ++" ++#ifdef ENABLE_SECONTEXT ++"\ ++ -e secontext=FORMAT, --secontext[=FORMAT]\n\ ++ print SELinux contexts in square brackets\n\ ++ formats: comma-separated list of all, full, mismatch, none\n\ ++ all: equivalent to full,mismatch\n\ ++ full: print the full context instead of the type only\n\ ++ mismatch: print expected context when actual is not matching\n\ ++ none: equivalent to not specifying the option at all\n\ ++" ++#endif ++"\ + -i, --instruction-pointer\n\ + print instruction pointer at time of syscall\n\ + " +@@ -1991,6 +2006,9 @@ init(int argc, char *argv[]) + static const char tflag_str[] = "format:time"; + static const char ttflag_str[] = "precision:us,format:time"; + static const char tttflag_str[] = "format:unix,precision:us"; ++#ifdef ENABLE_SECONTEXT ++ static const char secontext_qual[] = "!full,mismatch"; ++#endif + + int c, i; + int optF = 0, zflags = 0; +@@ -2054,6 +2072,9 @@ init(int argc, char *argv[]) + qualify_quiet("none"); + qualify_decode_fd("none"); + qualify_signals("all"); ++#ifdef ENABLE_SECONTEXT ++ qualify_secontext("none"); ++#endif + + static const char optstring[] = + "+a:Ab:cCdDe:E:fFhiI:kno:O:p:P:qrs:S:tTu:U:vVwxX:yzZ"; +@@ -2066,9 +2087,6 @@ init(int argc, char *argv[]) + GETOPT_OUTPUT_SEPARATELY, + GETOPT_TS, + GETOPT_PIDNS_TRANSLATION, +-#ifdef ENABLE_SECONTEXT +- GETOPT_SECONTEXT, +-#endif + + GETOPT_QUAL_TRACE, + GETOPT_QUAL_ABBREV, +@@ -2083,6 +2101,9 @@ init(int argc, char *argv[]) + GETOPT_QUAL_KVM, + GETOPT_QUAL_QUIET, + GETOPT_QUAL_DECODE_FD, ++#ifdef ENABLE_SECONTEXT ++ GETOPT_QUAL_SECONTEXT, ++#endif + }; + static const struct option longopts[] = { + { "columns", required_argument, 0, 'a' }, +@@ -2125,9 +2146,6 @@ init(int argc, char *argv[]) + { "failed-only", no_argument, 0, 'Z' }, + { "failing-only", no_argument, 0, 'Z' }, + { "seccomp-bpf", no_argument, 0, GETOPT_SECCOMP }, +-#ifdef ENABLE_SECONTEXT +- { "secontext", optional_argument, 0, GETOPT_SECONTEXT }, +-#endif + + { "trace", required_argument, 0, GETOPT_QUAL_TRACE }, + { "abbrev", required_argument, 0, GETOPT_QUAL_ABBREV }, +@@ -2144,6 +2162,9 @@ init(int argc, char *argv[]) + { "silent", optional_argument, 0, GETOPT_QUAL_QUIET }, + { "silence", optional_argument, 0, GETOPT_QUAL_QUIET }, + { "decode-fds", optional_argument, 0, GETOPT_QUAL_DECODE_FD }, ++#ifdef ENABLE_SECONTEXT ++ { "secontext", optional_argument, 0, GETOPT_QUAL_SECONTEXT }, ++#endif + + { 0, 0, 0, 0 } + }; +@@ -2357,14 +2378,8 @@ init(int argc, char *argv[]) + seccomp_filtering = true; + break; + #ifdef ENABLE_SECONTEXT +- case GETOPT_SECONTEXT: +- selinux_context = true; +- if (optarg) { +- if (!strcmp(optarg, "full")) +- selinux_context_full = true; +- else +- error_opt_arg(c, lopt, optarg); +- } ++ case GETOPT_QUAL_SECONTEXT: ++ qualify_secontext(optarg ? optarg : secontext_qual); + break; + #endif + case GETOPT_QUAL_TRACE: +@@ -2550,7 +2565,7 @@ init(int argc, char *argv[]) + error_msg("-y/--decode-fds has no effect " + "with -c/--summary-only"); + #ifdef ENABLE_SECONTEXT +- if (selinux_context) ++ if (!number_set_array_is_empty(secontext_set, 0)) + error_msg("--secontext has no effect with " + "-c/--summary-only"); + #endif +diff --git a/tests/gen_tests.in b/tests/gen_tests.in +index 8b4e2e9..71e2f17 100644 +--- a/tests/gen_tests.in ++++ b/tests/gen_tests.in +@@ -12,6 +12,8 @@ accept4 -a37 + access -a30 --trace-path=access_sample + access--secontext -a30 --secontext --trace-path=access_sample -e trace=access + access--secontext_full -a30 --secontext=full --trace-path=access_sample -e trace=access ++access--secontext_full_mismatch -a30 --secontext=full,mismatch --trace-path=access_sample -e trace=access ++access--secontext_mismatch -a30 --secontext=mismatch --trace-path=access_sample -e trace=access + acct -a20 + add_key -a30 -s12 + adjtimex -a15 +@@ -27,8 +29,10 @@ bpf-v -a20 -v -e trace=bpf + btrfs +ioctl.test + chdir -a10 + chmod -a28 +-chmod--secontext -a28 --secontext -e trace=chmod +-chmod--secontext_full -a28 --secontext=full -e trace=chmod ++chmod--secontext -a28 -e secontext=!full,mismatch -e trace=chmod ++chmod--secontext_full -a28 -e secontext=full -e trace=chmod ++chmod--secontext_full_mismatch -a28 --secontext=mismatch,full -e trace=chmod ++chmod--secontext_mismatch -a28 --secontext=mismatch -e trace=chmod + chown -a28 + chown32 -a31 + chroot -a13 +@@ -84,16 +88,24 @@ epoll_wait -a26 + erestartsys -a34 -e signal=none -e trace=recvfrom + execve--secontext +execve.test --secontext + execve--secontext_full +execve.test --secontext=full ++execve--secontext_full_mismatch +execve.test --secontext=full,mismatch ++execve--secontext_mismatch +execve.test --secontext=mismatch + execveat + execveat--secontext --secontext --trace=execveat + execveat--secontext_full --secontext=full --trace=execveat ++execveat--secontext_full_mismatch --secontext=full,mismatch --trace=execveat ++execveat--secontext_mismatch --secontext=mismatch --trace=execveat + execveat-v -v -e trace=execveat + faccessat--secontext +faccessat.test -a24 --secontext + faccessat--secontext_full +faccessat.test -a24 --secontext=full ++faccessat--secontext_full_mismatch +faccessat.test -a24 --secontext=full,mismatch ++faccessat--secontext_mismatch +faccessat.test -a24 --secontext=mismatch + faccessat-P -a23 --trace=faccessat -P /dev/full + faccessat-y +faccessat.test -a24 -y + faccessat-y--secontext +faccessat.test -a24 -y --secontext + faccessat-y--secontext_full +faccessat.test -a24 -y --secontext=full ++faccessat-y--secontext_full_mismatch +faccessat.test -a24 -y --secontext=full,mismatch ++faccessat-y--secontext_mismatch +faccessat.test -a24 -y --secontext=mismatch + faccessat-yy +faccessat.test -a24 -yy + faccessat2-P -a27 --trace=faccessat2 -P /dev/full + faccessat2-y +faccessat2.test -a28 -y +@@ -104,6 +116,8 @@ fanotify_init + fanotify_mark -a32 + fanotify_mark--secontext -a32 --secontext -e trace=fanotify_mark + fanotify_mark--secontext_full -a32 --secontext=full -e trace=fanotify_mark ++fanotify_mark--secontext_full_mismatch -a32 --secontext=full,mismatch -e trace=fanotify_mark ++fanotify_mark--secontext_mismatch -a32 --secontext=mismatch -e trace=fanotify_mark + fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark + fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark + fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark +@@ -111,17 +125,25 @@ fchdir -a11 + fchmod -a15 + fchmod--secontext -a15 --secontext -e trace=fchmod + fchmod--secontext_full -a15 --secontext=full -e trace=fchmod ++fchmod--secontext_full_mismatch -a15 --secontext=full,mismatch -e trace=fchmod ++fchmod--secontext_mismatch -a15 --secontext=mismatch -e trace=fchmod + fchmod-y -y -e trace=fchmod + fchmod-y--secontext -a15 -y --secontext -e trace=fchmod + fchmod-y--secontext_full -a15 -y --secontext=full -e trace=fchmod ++fchmod-y--secontext_full_mismatch -a15 -y --secontext=full,mismatch -e trace=fchmod ++fchmod-y--secontext_mismatch -a15 -y --secontext=mismatch -e trace=fchmod + fchmodat + fchmodat--secontext --secontext -e trace=fchmodat + fchmodat--secontext_full --secontext=full -e trace=fchmodat ++fchmodat--secontext_full_mismatch --secontext=full,mismatch -e trace=fchmodat ++fchmodat--secontext_mismatch --secontext=mismatch -e trace=fchmodat + fchown -a16 + fchown32 -a18 + fchownat + fchownat--secontext --secontext -e trace=fchownat + fchownat--secontext_full --secontext=full -e trace=fchownat ++fchownat--secontext_full_mismatch -e secontext=full,mismatch -e trace=fchownat ++fchownat--secontext_mismatch -e secontext=mismatch -e trace=fchownat + fcntl -a8 + fcntl--pidns-translation test_pidns -a8 -e trace=fcntl + fcntl64 -a8 +@@ -130,6 +152,8 @@ fdatasync -a14 + file_handle -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext --secontext -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext_full --secontext=full -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_full_mismatch --secontext=full,mismatch -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_mismatch --secontext=mismatch -e trace=name_to_handle_at,open_by_handle_at + filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f + filter_seccomp-flag ../$NAME + finit_module -a25 +@@ -383,6 +407,8 @@ link + linkat + linkat--secontext --secontext -e trace=linkat + linkat--secontext_full --secontext=full -e trace=linkat ++linkat--secontext_full_mismatch --secontext=full,mismatch -e trace=linkat ++linkat--secontext_mismatch --secontext=mismatch -e trace=linkat + lookup_dcookie -a27 + lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full + lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +@@ -526,11 +552,15 @@ oldstat -a32 -v -P stat.sample -P /dev/full + open -a30 -P $NAME.sample + open--secontext -a30 -P open.sample --secontext --trace=open + open--secontext_full -a30 -P open.sample --secontext=full --trace=open ++open--secontext_full_mismatch -a30 -P open.sample --secontext=full,mismatch --trace=open ++open--secontext_mismatch -a30 -P open.sample --secontext=mismatch --trace=open + open_tree -a30 -y + open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree + openat -a36 -P $NAME.sample + openat--secontext -a36 -P openat.sample -P $PWD/openat.sample --secontext -e trace=openat + openat--secontext_full -a36 -P openat.sample -P $PWD/openat.sample --secontext=full -e trace=openat ++openat--secontext_full_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=full,mismatch -e trace=openat ++openat--secontext_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=mismatch -e trace=openat + openat2 -a35 + openat2-Xabbrev --trace=openat2 -a35 -Xabbrev + openat2-Xraw --trace=openat2 -a32 -Xraw +diff --git a/tests/linkat.c b/tests/linkat.c +index 1d41d3d..1a869e3 100644 +--- a/tests/linkat.c ++++ b/tests/linkat.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + + #include "secontext.h" + #include "xmalloc.h" +@@ -88,10 +89,42 @@ main(void) + perror_msg_and_fail("close"); + + free(sample_1_secontext); +- update_secontext_type(sample_1, "default_t"); ++ ++#ifdef PRINT_SECONTEXT_MISMATCH ++ update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ sample_1_secontext = SECONTEXT_FILE(sample_1); ++ ++# ifdef PRINT_SECONTEXT_FULL ++ /* The mismatch should be detected */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "system_u") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++# else ++ /* The mismatch cannot be detected since it's on user part */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") != NULL) ++ perror_msg_and_fail("Context mismatch detected: %s", ++ sample_1_secontext); ++# endif ++ ++ free(sample_1_secontext); ++#endif ++ ++ update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++#endif ++ + rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, 0); + printf("%s%s(AT_FDCWD, \"%s\"%s, AT_FDCWD, \"%s\"%s, 0) = %s\n", + my_secontext, "linkat", +@@ -108,8 +141,19 @@ main(void) + + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); ++ ++ update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++#endif ++ + rc = syscall(__NR_linkat, dfd_old, sample_1, -100, sample_2, 0); + /* no context printed for sample_2 since file doesn't exist yet */ + printf("%s%s(%d%s, \"%s\"%s, AT_FDCWD, \"%s\", 0) = %s\n", +diff --git a/tests/options-syntax.test b/tests/options-syntax.test +index 765b2f8..848d297 100755 +--- a/tests/options-syntax.test ++++ b/tests/options-syntax.test +@@ -48,8 +48,18 @@ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --ti + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$ +-[ -z "$compiled_with_secontext" ] || +- check_h "invalid --secontext argument: 'ss'" --secontext=ss ++if [ -n "$compiled_with_secontext" ]; then ++ for opt in '--secontext' '-e secontext'; do ++ check_e "invalid secontext ''" $opt= ++ check_e "invalid secontext 'ss'" $opt=ss ++ check_e "invalid secontext 'ss'" $opt=ss,full,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss ++ check_e "invalid secontext 'ss'" $opt=full,mismatch,ss ++ check_e "invalid secontext 'ss'" $opt=!full,ss ++ check_e "invalid secontext 'ss'" $opt=!full,mismatch,ss ++ done ++fi + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$ +diff --git a/tests/secontext.c b/tests/secontext.c +index 21c6370..848eea9 100644 +--- a/tests/secontext.c ++++ b/tests/secontext.c +@@ -13,8 +13,10 @@ + # include + # include + # include ++# include + # include + # include ++# include + + # include "xmalloc.h" + +@@ -55,6 +57,79 @@ strip_trailing_newlines(char *context) + } + + static char * ++get_type_from_context(const char *full_context) ++{ ++ int saved_errno = errno; ++ ++ if (!full_context) ++ return NULL; ++ ++ char *saveptr = NULL; ++ const char *token; ++ unsigned int i; ++ ++ char *ctx_copy = xstrdup(full_context); ++ char *context = NULL; ++ for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), i++) { ++ if (i == 2) { ++ context = xstrdup(token); ++ break; ++ } ++ } ++ if (!context) ++ context = xstrdup(full_context); ++ free(ctx_copy); ++ ++ errno = saved_errno; ++ return context; ++} ++ ++static char * ++raw_expected_secontext_full_file(const char *filename) ++{ ++ int saved_errno = errno; ++ char *secontext; ++ ++ static struct selabel_handle *hdl; ++ if (!hdl) { ++ hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0); ++ if (!hdl) ++ perror_msg_and_skip("selabel_open"); ++ } ++ ++ char *resolved = realpath(filename, NULL); ++ if (!resolved) ++ perror_msg_and_fail("realpath: %s", filename); ++ ++ struct stat statbuf; ++ if (stat(resolved, &statbuf) < 0) ++ perror_msg_and_fail("stat: %s", resolved); ++ ++ if (selabel_lookup(hdl, &secontext, resolved, statbuf.st_mode) < 0) ++ perror_msg_and_skip("selabel_lookup: %s", resolved); ++ free(resolved); ++ ++ char *full_secontext = xstrdup(secontext); ++ freecon(secontext); ++ errno = saved_errno; ++ return full_secontext; ++} ++ ++static char * ++raw_expected_secontext_short_file(const char *filename) ++{ ++ int saved_errno = errno; ++ ++ char *ctx = raw_expected_secontext_full_file(filename); ++ char *type = get_type_from_context(ctx); ++ free(ctx); ++ ++ errno = saved_errno; ++ return type; ++} ++ ++static char * + raw_secontext_full_file(const char *filename) + { + int saved_errno = errno; +@@ -75,29 +150,11 @@ raw_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_secontext_full_file(filename); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- unsigned int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + static char * +@@ -121,35 +178,30 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + char * +-secontext_full_file(const char *filename) ++secontext_full_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_full_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_full_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_full_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -159,9 +211,22 @@ secontext_full_pid(pid_t pid) + } + + char * +-secontext_short_file(const char *filename) ++secontext_short_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_short_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_short_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_short_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -171,31 +236,38 @@ secontext_short_pid(pid_t pid) + } + + void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { ++ int saved_errno = errno; ++ assert(field >= SECONTEXT_USER && field <= SECONTEXT_TYPE); ++ + char *ctx = raw_secontext_full_file(file); + if (ctx == NULL) + return; + + char *saveptr = NULL; + char *token; +- int field; ++ int nfields; + char *split[4]; + +- for (token = strtok_r(ctx, ":", &saveptr), field = 0; +- token; token = strtok_r(NULL, ":", &saveptr), field++) { +- assert(field < 4); +- split[field] = token; ++ for (token = strtok_r(ctx, ":", &saveptr), nfields = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), nfields++) { ++ assert(nfields < 4); ++ split[nfields] = token; + } +- assert(field == 4); ++ assert(nfields == 4); ++ ++ split[field] = (char *)newvalue; + + char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1], +- newtype, split[3]); ++ split[2], split[3]); + + (void) setfilecon(file, newcontext); + + free(newcontext); + free(ctx); ++ errno = saved_errno; + } + + #endif /* HAVE_SELINUX_RUNTIME */ +diff --git a/tests/secontext.h b/tests/secontext.h +index c65f53a..1d0251a 100644 +--- a/tests/secontext.h ++++ b/tests/secontext.h +@@ -9,24 +9,39 @@ + #include "xmalloc.h" + #include + +-char *secontext_full_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC; + +-char *secontext_short_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC; + ++enum secontext_field { ++ SECONTEXT_USER, ++ SECONTEXT_ROLE, ++ SECONTEXT_TYPE ++}; ++ + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + +-void update_secontext_type(const char *file, const char *newtype); ++void update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue); + + # ifdef PRINT_SECONTEXT_FULL + +-# define SECONTEXT_FILE(filename) secontext_full_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_full_pid(pid) + + # else + +-# define SECONTEXT_FILE(filename) secontext_short_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_short_pid(pid) + + # endif +@@ -34,7 +49,8 @@ void update_secontext_type(const char *file, const char *newtype); + #else + + static inline void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { + } + +diff --git a/tests-m32/gen_tests.in b/tests-m32/gen_tests.in +index 8b4e2e9..71e2f17 100644 +--- a/tests-m32/gen_tests.in ++++ b/tests-m32/gen_tests.in +@@ -12,6 +12,8 @@ accept4 -a37 + access -a30 --trace-path=access_sample + access--secontext -a30 --secontext --trace-path=access_sample -e trace=access + access--secontext_full -a30 --secontext=full --trace-path=access_sample -e trace=access ++access--secontext_full_mismatch -a30 --secontext=full,mismatch --trace-path=access_sample -e trace=access ++access--secontext_mismatch -a30 --secontext=mismatch --trace-path=access_sample -e trace=access + acct -a20 + add_key -a30 -s12 + adjtimex -a15 +@@ -27,8 +29,10 @@ bpf-v -a20 -v -e trace=bpf + btrfs +ioctl.test + chdir -a10 + chmod -a28 +-chmod--secontext -a28 --secontext -e trace=chmod +-chmod--secontext_full -a28 --secontext=full -e trace=chmod ++chmod--secontext -a28 -e secontext=!full,mismatch -e trace=chmod ++chmod--secontext_full -a28 -e secontext=full -e trace=chmod ++chmod--secontext_full_mismatch -a28 --secontext=mismatch,full -e trace=chmod ++chmod--secontext_mismatch -a28 --secontext=mismatch -e trace=chmod + chown -a28 + chown32 -a31 + chroot -a13 +@@ -84,16 +88,24 @@ epoll_wait -a26 + erestartsys -a34 -e signal=none -e trace=recvfrom + execve--secontext +execve.test --secontext + execve--secontext_full +execve.test --secontext=full ++execve--secontext_full_mismatch +execve.test --secontext=full,mismatch ++execve--secontext_mismatch +execve.test --secontext=mismatch + execveat + execveat--secontext --secontext --trace=execveat + execveat--secontext_full --secontext=full --trace=execveat ++execveat--secontext_full_mismatch --secontext=full,mismatch --trace=execveat ++execveat--secontext_mismatch --secontext=mismatch --trace=execveat + execveat-v -v -e trace=execveat + faccessat--secontext +faccessat.test -a24 --secontext + faccessat--secontext_full +faccessat.test -a24 --secontext=full ++faccessat--secontext_full_mismatch +faccessat.test -a24 --secontext=full,mismatch ++faccessat--secontext_mismatch +faccessat.test -a24 --secontext=mismatch + faccessat-P -a23 --trace=faccessat -P /dev/full + faccessat-y +faccessat.test -a24 -y + faccessat-y--secontext +faccessat.test -a24 -y --secontext + faccessat-y--secontext_full +faccessat.test -a24 -y --secontext=full ++faccessat-y--secontext_full_mismatch +faccessat.test -a24 -y --secontext=full,mismatch ++faccessat-y--secontext_mismatch +faccessat.test -a24 -y --secontext=mismatch + faccessat-yy +faccessat.test -a24 -yy + faccessat2-P -a27 --trace=faccessat2 -P /dev/full + faccessat2-y +faccessat2.test -a28 -y +@@ -104,6 +116,8 @@ fanotify_init + fanotify_mark -a32 + fanotify_mark--secontext -a32 --secontext -e trace=fanotify_mark + fanotify_mark--secontext_full -a32 --secontext=full -e trace=fanotify_mark ++fanotify_mark--secontext_full_mismatch -a32 --secontext=full,mismatch -e trace=fanotify_mark ++fanotify_mark--secontext_mismatch -a32 --secontext=mismatch -e trace=fanotify_mark + fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark + fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark + fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark +@@ -111,17 +125,25 @@ fchdir -a11 + fchmod -a15 + fchmod--secontext -a15 --secontext -e trace=fchmod + fchmod--secontext_full -a15 --secontext=full -e trace=fchmod ++fchmod--secontext_full_mismatch -a15 --secontext=full,mismatch -e trace=fchmod ++fchmod--secontext_mismatch -a15 --secontext=mismatch -e trace=fchmod + fchmod-y -y -e trace=fchmod + fchmod-y--secontext -a15 -y --secontext -e trace=fchmod + fchmod-y--secontext_full -a15 -y --secontext=full -e trace=fchmod ++fchmod-y--secontext_full_mismatch -a15 -y --secontext=full,mismatch -e trace=fchmod ++fchmod-y--secontext_mismatch -a15 -y --secontext=mismatch -e trace=fchmod + fchmodat + fchmodat--secontext --secontext -e trace=fchmodat + fchmodat--secontext_full --secontext=full -e trace=fchmodat ++fchmodat--secontext_full_mismatch --secontext=full,mismatch -e trace=fchmodat ++fchmodat--secontext_mismatch --secontext=mismatch -e trace=fchmodat + fchown -a16 + fchown32 -a18 + fchownat + fchownat--secontext --secontext -e trace=fchownat + fchownat--secontext_full --secontext=full -e trace=fchownat ++fchownat--secontext_full_mismatch -e secontext=full,mismatch -e trace=fchownat ++fchownat--secontext_mismatch -e secontext=mismatch -e trace=fchownat + fcntl -a8 + fcntl--pidns-translation test_pidns -a8 -e trace=fcntl + fcntl64 -a8 +@@ -130,6 +152,8 @@ fdatasync -a14 + file_handle -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext --secontext -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext_full --secontext=full -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_full_mismatch --secontext=full,mismatch -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_mismatch --secontext=mismatch -e trace=name_to_handle_at,open_by_handle_at + filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f + filter_seccomp-flag ../$NAME + finit_module -a25 +@@ -383,6 +407,8 @@ link + linkat + linkat--secontext --secontext -e trace=linkat + linkat--secontext_full --secontext=full -e trace=linkat ++linkat--secontext_full_mismatch --secontext=full,mismatch -e trace=linkat ++linkat--secontext_mismatch --secontext=mismatch -e trace=linkat + lookup_dcookie -a27 + lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full + lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +@@ -526,11 +552,15 @@ oldstat -a32 -v -P stat.sample -P /dev/full + open -a30 -P $NAME.sample + open--secontext -a30 -P open.sample --secontext --trace=open + open--secontext_full -a30 -P open.sample --secontext=full --trace=open ++open--secontext_full_mismatch -a30 -P open.sample --secontext=full,mismatch --trace=open ++open--secontext_mismatch -a30 -P open.sample --secontext=mismatch --trace=open + open_tree -a30 -y + open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree + openat -a36 -P $NAME.sample + openat--secontext -a36 -P openat.sample -P $PWD/openat.sample --secontext -e trace=openat + openat--secontext_full -a36 -P openat.sample -P $PWD/openat.sample --secontext=full -e trace=openat ++openat--secontext_full_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=full,mismatch -e trace=openat ++openat--secontext_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=mismatch -e trace=openat + openat2 -a35 + openat2-Xabbrev --trace=openat2 -a35 -Xabbrev + openat2-Xraw --trace=openat2 -a32 -Xraw +diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c +index 1d41d3d..1a869e3 100644 +--- a/tests-m32/linkat.c ++++ b/tests-m32/linkat.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + + #include "secontext.h" + #include "xmalloc.h" +@@ -88,10 +89,42 @@ main(void) + perror_msg_and_fail("close"); + + free(sample_1_secontext); +- update_secontext_type(sample_1, "default_t"); ++ ++#ifdef PRINT_SECONTEXT_MISMATCH ++ update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ sample_1_secontext = SECONTEXT_FILE(sample_1); ++ ++# ifdef PRINT_SECONTEXT_FULL ++ /* The mismatch should be detected */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "system_u") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++# else ++ /* The mismatch cannot be detected since it's on user part */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") != NULL) ++ perror_msg_and_fail("Context mismatch detected: %s", ++ sample_1_secontext); ++# endif ++ ++ free(sample_1_secontext); ++#endif ++ ++ update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++#endif ++ + rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, 0); + printf("%s%s(AT_FDCWD, \"%s\"%s, AT_FDCWD, \"%s\"%s, 0) = %s\n", + my_secontext, "linkat", +@@ -108,8 +141,19 @@ main(void) + + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); ++ ++ update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++#endif ++ + rc = syscall(__NR_linkat, dfd_old, sample_1, -100, sample_2, 0); + /* no context printed for sample_2 since file doesn't exist yet */ + printf("%s%s(%d%s, \"%s\"%s, AT_FDCWD, \"%s\", 0) = %s\n", +diff --git a/tests-m32/options-syntax.test b/tests-m32/options-syntax.test +index 765b2f8..848d297 100755 +--- a/tests-m32/options-syntax.test ++++ b/tests-m32/options-syntax.test +@@ -48,8 +48,18 @@ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --ti + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$ +-[ -z "$compiled_with_secontext" ] || +- check_h "invalid --secontext argument: 'ss'" --secontext=ss ++if [ -n "$compiled_with_secontext" ]; then ++ for opt in '--secontext' '-e secontext'; do ++ check_e "invalid secontext ''" $opt= ++ check_e "invalid secontext 'ss'" $opt=ss ++ check_e "invalid secontext 'ss'" $opt=ss,full,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss ++ check_e "invalid secontext 'ss'" $opt=full,mismatch,ss ++ check_e "invalid secontext 'ss'" $opt=!full,ss ++ check_e "invalid secontext 'ss'" $opt=!full,mismatch,ss ++ done ++fi + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$ +diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c +index 21c6370..848eea9 100644 +--- a/tests-m32/secontext.c ++++ b/tests-m32/secontext.c +@@ -13,8 +13,10 @@ + # include + # include + # include ++# include + # include + # include ++# include + + # include "xmalloc.h" + +@@ -55,6 +57,79 @@ strip_trailing_newlines(char *context) + } + + static char * ++get_type_from_context(const char *full_context) ++{ ++ int saved_errno = errno; ++ ++ if (!full_context) ++ return NULL; ++ ++ char *saveptr = NULL; ++ const char *token; ++ unsigned int i; ++ ++ char *ctx_copy = xstrdup(full_context); ++ char *context = NULL; ++ for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), i++) { ++ if (i == 2) { ++ context = xstrdup(token); ++ break; ++ } ++ } ++ if (!context) ++ context = xstrdup(full_context); ++ free(ctx_copy); ++ ++ errno = saved_errno; ++ return context; ++} ++ ++static char * ++raw_expected_secontext_full_file(const char *filename) ++{ ++ int saved_errno = errno; ++ char *secontext; ++ ++ static struct selabel_handle *hdl; ++ if (!hdl) { ++ hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0); ++ if (!hdl) ++ perror_msg_and_skip("selabel_open"); ++ } ++ ++ char *resolved = realpath(filename, NULL); ++ if (!resolved) ++ perror_msg_and_fail("realpath: %s", filename); ++ ++ struct stat statbuf; ++ if (stat(resolved, &statbuf) < 0) ++ perror_msg_and_fail("stat: %s", resolved); ++ ++ if (selabel_lookup(hdl, &secontext, resolved, statbuf.st_mode) < 0) ++ perror_msg_and_skip("selabel_lookup: %s", resolved); ++ free(resolved); ++ ++ char *full_secontext = xstrdup(secontext); ++ freecon(secontext); ++ errno = saved_errno; ++ return full_secontext; ++} ++ ++static char * ++raw_expected_secontext_short_file(const char *filename) ++{ ++ int saved_errno = errno; ++ ++ char *ctx = raw_expected_secontext_full_file(filename); ++ char *type = get_type_from_context(ctx); ++ free(ctx); ++ ++ errno = saved_errno; ++ return type; ++} ++ ++static char * + raw_secontext_full_file(const char *filename) + { + int saved_errno = errno; +@@ -75,29 +150,11 @@ raw_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_secontext_full_file(filename); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- unsigned int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + static char * +@@ -121,35 +178,30 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + char * +-secontext_full_file(const char *filename) ++secontext_full_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_full_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_full_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_full_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -159,9 +211,22 @@ secontext_full_pid(pid_t pid) + } + + char * +-secontext_short_file(const char *filename) ++secontext_short_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_short_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_short_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_short_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -171,31 +236,38 @@ secontext_short_pid(pid_t pid) + } + + void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { ++ int saved_errno = errno; ++ assert(field >= SECONTEXT_USER && field <= SECONTEXT_TYPE); ++ + char *ctx = raw_secontext_full_file(file); + if (ctx == NULL) + return; + + char *saveptr = NULL; + char *token; +- int field; ++ int nfields; + char *split[4]; + +- for (token = strtok_r(ctx, ":", &saveptr), field = 0; +- token; token = strtok_r(NULL, ":", &saveptr), field++) { +- assert(field < 4); +- split[field] = token; ++ for (token = strtok_r(ctx, ":", &saveptr), nfields = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), nfields++) { ++ assert(nfields < 4); ++ split[nfields] = token; + } +- assert(field == 4); ++ assert(nfields == 4); ++ ++ split[field] = (char *)newvalue; + + char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1], +- newtype, split[3]); ++ split[2], split[3]); + + (void) setfilecon(file, newcontext); + + free(newcontext); + free(ctx); ++ errno = saved_errno; + } + + #endif /* HAVE_SELINUX_RUNTIME */ +diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h +index c65f53a..1d0251a 100644 +--- a/tests-m32/secontext.h ++++ b/tests-m32/secontext.h +@@ -9,24 +9,39 @@ + #include "xmalloc.h" + #include + +-char *secontext_full_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC; + +-char *secontext_short_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC; + ++enum secontext_field { ++ SECONTEXT_USER, ++ SECONTEXT_ROLE, ++ SECONTEXT_TYPE ++}; ++ + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + +-void update_secontext_type(const char *file, const char *newtype); ++void update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue); + + # ifdef PRINT_SECONTEXT_FULL + +-# define SECONTEXT_FILE(filename) secontext_full_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_full_pid(pid) + + # else + +-# define SECONTEXT_FILE(filename) secontext_short_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_short_pid(pid) + + # endif +@@ -34,7 +49,8 @@ void update_secontext_type(const char *file, const char *newtype); + #else + + static inline void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { + } + +diff --git a/tests-mx32/gen_tests.in b/tests-mx32/gen_tests.in +index 8b4e2e9..71e2f17 100644 +--- a/tests-mx32/gen_tests.in ++++ b/tests-mx32/gen_tests.in +@@ -12,6 +12,8 @@ accept4 -a37 + access -a30 --trace-path=access_sample + access--secontext -a30 --secontext --trace-path=access_sample -e trace=access + access--secontext_full -a30 --secontext=full --trace-path=access_sample -e trace=access ++access--secontext_full_mismatch -a30 --secontext=full,mismatch --trace-path=access_sample -e trace=access ++access--secontext_mismatch -a30 --secontext=mismatch --trace-path=access_sample -e trace=access + acct -a20 + add_key -a30 -s12 + adjtimex -a15 +@@ -27,8 +29,10 @@ bpf-v -a20 -v -e trace=bpf + btrfs +ioctl.test + chdir -a10 + chmod -a28 +-chmod--secontext -a28 --secontext -e trace=chmod +-chmod--secontext_full -a28 --secontext=full -e trace=chmod ++chmod--secontext -a28 -e secontext=!full,mismatch -e trace=chmod ++chmod--secontext_full -a28 -e secontext=full -e trace=chmod ++chmod--secontext_full_mismatch -a28 --secontext=mismatch,full -e trace=chmod ++chmod--secontext_mismatch -a28 --secontext=mismatch -e trace=chmod + chown -a28 + chown32 -a31 + chroot -a13 +@@ -84,16 +88,24 @@ epoll_wait -a26 + erestartsys -a34 -e signal=none -e trace=recvfrom + execve--secontext +execve.test --secontext + execve--secontext_full +execve.test --secontext=full ++execve--secontext_full_mismatch +execve.test --secontext=full,mismatch ++execve--secontext_mismatch +execve.test --secontext=mismatch + execveat + execveat--secontext --secontext --trace=execveat + execveat--secontext_full --secontext=full --trace=execveat ++execveat--secontext_full_mismatch --secontext=full,mismatch --trace=execveat ++execveat--secontext_mismatch --secontext=mismatch --trace=execveat + execveat-v -v -e trace=execveat + faccessat--secontext +faccessat.test -a24 --secontext + faccessat--secontext_full +faccessat.test -a24 --secontext=full ++faccessat--secontext_full_mismatch +faccessat.test -a24 --secontext=full,mismatch ++faccessat--secontext_mismatch +faccessat.test -a24 --secontext=mismatch + faccessat-P -a23 --trace=faccessat -P /dev/full + faccessat-y +faccessat.test -a24 -y + faccessat-y--secontext +faccessat.test -a24 -y --secontext + faccessat-y--secontext_full +faccessat.test -a24 -y --secontext=full ++faccessat-y--secontext_full_mismatch +faccessat.test -a24 -y --secontext=full,mismatch ++faccessat-y--secontext_mismatch +faccessat.test -a24 -y --secontext=mismatch + faccessat-yy +faccessat.test -a24 -yy + faccessat2-P -a27 --trace=faccessat2 -P /dev/full + faccessat2-y +faccessat2.test -a28 -y +@@ -104,6 +116,8 @@ fanotify_init + fanotify_mark -a32 + fanotify_mark--secontext -a32 --secontext -e trace=fanotify_mark + fanotify_mark--secontext_full -a32 --secontext=full -e trace=fanotify_mark ++fanotify_mark--secontext_full_mismatch -a32 --secontext=full,mismatch -e trace=fanotify_mark ++fanotify_mark--secontext_mismatch -a32 --secontext=mismatch -e trace=fanotify_mark + fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark + fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark + fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark +@@ -111,17 +125,25 @@ fchdir -a11 + fchmod -a15 + fchmod--secontext -a15 --secontext -e trace=fchmod + fchmod--secontext_full -a15 --secontext=full -e trace=fchmod ++fchmod--secontext_full_mismatch -a15 --secontext=full,mismatch -e trace=fchmod ++fchmod--secontext_mismatch -a15 --secontext=mismatch -e trace=fchmod + fchmod-y -y -e trace=fchmod + fchmod-y--secontext -a15 -y --secontext -e trace=fchmod + fchmod-y--secontext_full -a15 -y --secontext=full -e trace=fchmod ++fchmod-y--secontext_full_mismatch -a15 -y --secontext=full,mismatch -e trace=fchmod ++fchmod-y--secontext_mismatch -a15 -y --secontext=mismatch -e trace=fchmod + fchmodat + fchmodat--secontext --secontext -e trace=fchmodat + fchmodat--secontext_full --secontext=full -e trace=fchmodat ++fchmodat--secontext_full_mismatch --secontext=full,mismatch -e trace=fchmodat ++fchmodat--secontext_mismatch --secontext=mismatch -e trace=fchmodat + fchown -a16 + fchown32 -a18 + fchownat + fchownat--secontext --secontext -e trace=fchownat + fchownat--secontext_full --secontext=full -e trace=fchownat ++fchownat--secontext_full_mismatch -e secontext=full,mismatch -e trace=fchownat ++fchownat--secontext_mismatch -e secontext=mismatch -e trace=fchownat + fcntl -a8 + fcntl--pidns-translation test_pidns -a8 -e trace=fcntl + fcntl64 -a8 +@@ -130,6 +152,8 @@ fdatasync -a14 + file_handle -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext --secontext -e trace=name_to_handle_at,open_by_handle_at + file_handle--secontext_full --secontext=full -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_full_mismatch --secontext=full,mismatch -e trace=name_to_handle_at,open_by_handle_at ++file_handle--secontext_mismatch --secontext=mismatch -e trace=name_to_handle_at,open_by_handle_at + filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f + filter_seccomp-flag ../$NAME + finit_module -a25 +@@ -383,6 +407,8 @@ link + linkat + linkat--secontext --secontext -e trace=linkat + linkat--secontext_full --secontext=full -e trace=linkat ++linkat--secontext_full_mismatch --secontext=full,mismatch -e trace=linkat ++linkat--secontext_mismatch --secontext=mismatch -e trace=linkat + lookup_dcookie -a27 + lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full + lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +@@ -526,11 +552,15 @@ oldstat -a32 -v -P stat.sample -P /dev/full + open -a30 -P $NAME.sample + open--secontext -a30 -P open.sample --secontext --trace=open + open--secontext_full -a30 -P open.sample --secontext=full --trace=open ++open--secontext_full_mismatch -a30 -P open.sample --secontext=full,mismatch --trace=open ++open--secontext_mismatch -a30 -P open.sample --secontext=mismatch --trace=open + open_tree -a30 -y + open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree + openat -a36 -P $NAME.sample + openat--secontext -a36 -P openat.sample -P $PWD/openat.sample --secontext -e trace=openat + openat--secontext_full -a36 -P openat.sample -P $PWD/openat.sample --secontext=full -e trace=openat ++openat--secontext_full_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=full,mismatch -e trace=openat ++openat--secontext_mismatch -a36 -P openat.sample -P $PWD/openat.sample --secontext=mismatch -e trace=openat + openat2 -a35 + openat2-Xabbrev --trace=openat2 -a35 -Xabbrev + openat2-Xraw --trace=openat2 -a32 -Xraw +diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c +index 1d41d3d..1a869e3 100644 +--- a/tests-mx32/linkat.c ++++ b/tests-mx32/linkat.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + + #include "secontext.h" + #include "xmalloc.h" +@@ -88,10 +89,42 @@ main(void) + perror_msg_and_fail("close"); + + free(sample_1_secontext); +- update_secontext_type(sample_1, "default_t"); ++ ++#ifdef PRINT_SECONTEXT_MISMATCH ++ update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ sample_1_secontext = SECONTEXT_FILE(sample_1); ++ ++# ifdef PRINT_SECONTEXT_FULL ++ /* The mismatch should be detected */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "system_u") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++# else ++ /* The mismatch cannot be detected since it's on user part */ ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") != NULL) ++ perror_msg_and_fail("Context mismatch detected: %s", ++ sample_1_secontext); ++# endif ++ ++ free(sample_1_secontext); ++#endif ++ ++ update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++ if (*sample_1_secontext && strstr(sample_1_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ sample_1_secontext); ++#endif ++ + rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, 0); + printf("%s%s(AT_FDCWD, \"%s\"%s, AT_FDCWD, \"%s\"%s, 0) = %s\n", + my_secontext, "linkat", +@@ -108,8 +141,19 @@ main(void) + + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); ++ ++ update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + ++#ifdef PRINT_SECONTEXT_MISMATCH ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "!!") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++ if (*dfd_old_secontext && strstr(dfd_old_secontext, "default_t") == NULL) ++ perror_msg_and_fail("Context mismatch not detected: %s", ++ dfd_old_secontext); ++#endif ++ + rc = syscall(__NR_linkat, dfd_old, sample_1, -100, sample_2, 0); + /* no context printed for sample_2 since file doesn't exist yet */ + printf("%s%s(%d%s, \"%s\"%s, AT_FDCWD, \"%s\", 0) = %s\n", +diff --git a/tests-mx32/options-syntax.test b/tests-mx32/options-syntax.test +index 765b2f8..848d297 100755 +--- a/tests-mx32/options-syntax.test ++++ b/tests-mx32/options-syntax.test +@@ -48,8 +48,18 @@ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --ti + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$ + check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$ +-[ -z "$compiled_with_secontext" ] || +- check_h "invalid --secontext argument: 'ss'" --secontext=ss ++if [ -n "$compiled_with_secontext" ]; then ++ for opt in '--secontext' '-e secontext'; do ++ check_e "invalid secontext ''" $opt= ++ check_e "invalid secontext 'ss'" $opt=ss ++ check_e "invalid secontext 'ss'" $opt=ss,full,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss,mismatch ++ check_e "invalid secontext 'ss'" $opt=full,ss ++ check_e "invalid secontext 'ss'" $opt=full,mismatch,ss ++ check_e "invalid secontext 'ss'" $opt=!full,ss ++ check_e "invalid secontext 'ss'" $opt=!full,mismatch,ss ++ done ++fi + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$ + check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$ +diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c +index 21c6370..848eea9 100644 +--- a/tests-mx32/secontext.c ++++ b/tests-mx32/secontext.c +@@ -13,8 +13,10 @@ + # include + # include + # include ++# include + # include + # include ++# include + + # include "xmalloc.h" + +@@ -55,6 +57,79 @@ strip_trailing_newlines(char *context) + } + + static char * ++get_type_from_context(const char *full_context) ++{ ++ int saved_errno = errno; ++ ++ if (!full_context) ++ return NULL; ++ ++ char *saveptr = NULL; ++ const char *token; ++ unsigned int i; ++ ++ char *ctx_copy = xstrdup(full_context); ++ char *context = NULL; ++ for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), i++) { ++ if (i == 2) { ++ context = xstrdup(token); ++ break; ++ } ++ } ++ if (!context) ++ context = xstrdup(full_context); ++ free(ctx_copy); ++ ++ errno = saved_errno; ++ return context; ++} ++ ++static char * ++raw_expected_secontext_full_file(const char *filename) ++{ ++ int saved_errno = errno; ++ char *secontext; ++ ++ static struct selabel_handle *hdl; ++ if (!hdl) { ++ hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0); ++ if (!hdl) ++ perror_msg_and_skip("selabel_open"); ++ } ++ ++ char *resolved = realpath(filename, NULL); ++ if (!resolved) ++ perror_msg_and_fail("realpath: %s", filename); ++ ++ struct stat statbuf; ++ if (stat(resolved, &statbuf) < 0) ++ perror_msg_and_fail("stat: %s", resolved); ++ ++ if (selabel_lookup(hdl, &secontext, resolved, statbuf.st_mode) < 0) ++ perror_msg_and_skip("selabel_lookup: %s", resolved); ++ free(resolved); ++ ++ char *full_secontext = xstrdup(secontext); ++ freecon(secontext); ++ errno = saved_errno; ++ return full_secontext; ++} ++ ++static char * ++raw_expected_secontext_short_file(const char *filename) ++{ ++ int saved_errno = errno; ++ ++ char *ctx = raw_expected_secontext_full_file(filename); ++ char *type = get_type_from_context(ctx); ++ free(ctx); ++ ++ errno = saved_errno; ++ return type; ++} ++ ++static char * + raw_secontext_full_file(const char *filename) + { + int saved_errno = errno; +@@ -75,29 +150,11 @@ raw_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_secontext_full_file(filename); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- unsigned int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + static char * +@@ -121,35 +178,30 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- if (ctx == NULL) +- return ctx; +- +- char *saveptr = NULL; +- const char *token; +- int i; +- +- char *ctx_copy = xstrdup(ctx); +- char *context = NULL; +- for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; +- token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { +- context = xstrdup(token); +- break; +- } +- } +- if (context == NULL) +- context = xstrdup(ctx); +- free(ctx_copy); ++ char *type = get_type_from_context(ctx); + free(ctx); + + errno = saved_errno; +- return context; ++ return type; + } + + char * +-secontext_full_file(const char *filename) ++secontext_full_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_full_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_full_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_full_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -159,9 +211,22 @@ secontext_full_pid(pid_t pid) + } + + char * +-secontext_short_file(const char *filename) ++secontext_short_file(const char *filename, bool mismatch) + { +- return FORMAT_SPACE_BEFORE(raw_secontext_short_file(filename)); ++ int saved_errno = errno; ++ char *context = raw_secontext_short_file(filename); ++ if (context && mismatch) { ++ char *expected = raw_expected_secontext_short_file(filename); ++ if (expected && strcmp(context, expected)) { ++ char *context_mismatch = ++ xasprintf("%s!!%s", context, expected); ++ free(context); ++ context = context_mismatch; ++ } ++ free(expected); ++ } ++ errno = saved_errno; ++ return FORMAT_SPACE_BEFORE(context); + } + + char * +@@ -171,31 +236,38 @@ secontext_short_pid(pid_t pid) + } + + void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { ++ int saved_errno = errno; ++ assert(field >= SECONTEXT_USER && field <= SECONTEXT_TYPE); ++ + char *ctx = raw_secontext_full_file(file); + if (ctx == NULL) + return; + + char *saveptr = NULL; + char *token; +- int field; ++ int nfields; + char *split[4]; + +- for (token = strtok_r(ctx, ":", &saveptr), field = 0; +- token; token = strtok_r(NULL, ":", &saveptr), field++) { +- assert(field < 4); +- split[field] = token; ++ for (token = strtok_r(ctx, ":", &saveptr), nfields = 0; ++ token; token = strtok_r(NULL, ":", &saveptr), nfields++) { ++ assert(nfields < 4); ++ split[nfields] = token; + } +- assert(field == 4); ++ assert(nfields == 4); ++ ++ split[field] = (char *)newvalue; + + char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1], +- newtype, split[3]); ++ split[2], split[3]); + + (void) setfilecon(file, newcontext); + + free(newcontext); + free(ctx); ++ errno = saved_errno; + } + + #endif /* HAVE_SELINUX_RUNTIME */ +diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h +index c65f53a..1d0251a 100644 +--- a/tests-mx32/secontext.h ++++ b/tests-mx32/secontext.h +@@ -9,24 +9,39 @@ + #include "xmalloc.h" + #include + +-char *secontext_full_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC; + +-char *secontext_short_file(const char *) ATTRIBUTE_MALLOC; ++char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC; + char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC; + ++enum secontext_field { ++ SECONTEXT_USER, ++ SECONTEXT_ROLE, ++ SECONTEXT_TYPE ++}; ++ + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + +-void update_secontext_type(const char *file, const char *newtype); ++void update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue); + + # ifdef PRINT_SECONTEXT_FULL + +-# define SECONTEXT_FILE(filename) secontext_full_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_full_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_full_pid(pid) + + # else + +-# define SECONTEXT_FILE(filename) secontext_short_file(filename) ++# ifdef PRINT_SECONTEXT_MISMATCH ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, true) ++# else ++# define SECONTEXT_FILE(filename) secontext_short_file(filename, false) ++# endif + # define SECONTEXT_PID(pid) secontext_short_pid(pid) + + # endif +@@ -34,7 +49,8 @@ void update_secontext_type(const char *file, const char *newtype); + #else + + static inline void +-update_secontext_type(const char *file, const char *newtype) ++update_secontext_field(const char *file, enum secontext_field field, ++ const char *newvalue) + { + } + +--- old/tests/Makefile.in 2022-02-07 20:23:38.724063729 +0100 ++++ new/tests/Makefile.in 2022-02-07 20:24:05.660063357 +0100 +@@ -614,25 +614,55 @@ + xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \ + xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT) + am__EXEEXT_2 = access--secontext$(EXEEXT) \ +- access--secontext_full$(EXEEXT) chmod--secontext$(EXEEXT) \ +- chmod--secontext_full$(EXEEXT) execve--secontext$(EXEEXT) \ +- execve--secontext_full$(EXEEXT) execveat--secontext$(EXEEXT) \ +- execveat--secontext_full$(EXEEXT) \ ++ access--secontext_full$(EXEEXT) \ ++ access--secontext_full_mismatch$(EXEEXT) \ ++ access--secontext_mismatch$(EXEEXT) chmod--secontext$(EXEEXT) \ ++ chmod--secontext_full$(EXEEXT) \ ++ chmod--secontext_full_mismatch$(EXEEXT) \ ++ chmod--secontext_mismatch$(EXEEXT) execve--secontext$(EXEEXT) \ ++ execve--secontext_full$(EXEEXT) \ ++ execve--secontext_full_mismatch$(EXEEXT) \ ++ execve--secontext_mismatch$(EXEEXT) \ ++ execveat--secontext$(EXEEXT) execveat--secontext_full$(EXEEXT) \ ++ execveat--secontext_full_mismatch$(EXEEXT) \ ++ execveat--secontext_mismatch$(EXEEXT) \ + faccessat--secontext$(EXEEXT) \ + faccessat--secontext_full$(EXEEXT) \ ++ faccessat--secontext_full_mismatch$(EXEEXT) \ ++ faccessat--secontext_mismatch$(EXEEXT) \ + faccessat-y--secontext$(EXEEXT) \ + faccessat-y--secontext_full$(EXEEXT) \ ++ faccessat-y--secontext_full_mismatch$(EXEEXT) \ ++ faccessat-y--secontext_mismatch$(EXEEXT) \ + fanotify_mark--secontext$(EXEEXT) \ + fanotify_mark--secontext_full$(EXEEXT) \ ++ fanotify_mark--secontext_full_mismatch$(EXEEXT) \ ++ fanotify_mark--secontext_mismatch$(EXEEXT) \ + fchmod--secontext$(EXEEXT) fchmod--secontext_full$(EXEEXT) \ ++ fchmod--secontext_full_mismatch$(EXEEXT) \ ++ fchmod--secontext_mismatch$(EXEEXT) \ + fchmod-y--secontext$(EXEEXT) fchmod-y--secontext_full$(EXEEXT) \ ++ fchmod-y--secontext_full_mismatch$(EXEEXT) \ ++ fchmod-y--secontext_mismatch$(EXEEXT) \ + fchmodat--secontext$(EXEEXT) fchmodat--secontext_full$(EXEEXT) \ ++ fchmodat--secontext_full_mismatch$(EXEEXT) \ ++ fchmodat--secontext_mismatch$(EXEEXT) \ + fchownat--secontext$(EXEEXT) fchownat--secontext_full$(EXEEXT) \ ++ fchownat--secontext_full_mismatch$(EXEEXT) \ ++ fchownat--secontext_mismatch$(EXEEXT) \ + file_handle--secontext$(EXEEXT) \ + file_handle--secontext_full$(EXEEXT) \ ++ file_handle--secontext_full_mismatch$(EXEEXT) \ ++ file_handle--secontext_mismatch$(EXEEXT) \ + linkat--secontext$(EXEEXT) linkat--secontext_full$(EXEEXT) \ +- open--secontext$(EXEEXT) open--secontext_full$(EXEEXT) \ +- openat--secontext$(EXEEXT) openat--secontext_full$(EXEEXT) ++ linkat--secontext_full_mismatch$(EXEEXT) \ ++ linkat--secontext_mismatch$(EXEEXT) open--secontext$(EXEEXT) \ ++ open--secontext_full$(EXEEXT) \ ++ open--secontext_full_mismatch$(EXEEXT) \ ++ open--secontext_mismatch$(EXEEXT) openat--secontext$(EXEEXT) \ ++ openat--secontext_full$(EXEEXT) \ ++ openat--secontext_full_mismatch$(EXEEXT) \ ++ openat--secontext_mismatch$(EXEEXT) + ARFLAGS = cru + AM_V_AR = $(am__v_AR_@AM_V@) + am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +@@ -661,6 +691,17 @@ + access__secontext_full_SOURCES = access--secontext_full.c + access__secontext_full_OBJECTS = access--secontext_full.$(OBJEXT) + access__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++access__secontext_full_mismatch_SOURCES = \ ++ access--secontext_full_mismatch.c ++access__secontext_full_mismatch_OBJECTS = \ ++ access--secontext_full_mismatch.$(OBJEXT) ++access__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++access__secontext_mismatch_SOURCES = access--secontext_mismatch.c ++access__secontext_mismatch_OBJECTS = \ ++ access--secontext_mismatch.$(OBJEXT) ++access__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + acct_SOURCES = acct.c + acct_OBJECTS = acct.$(OBJEXT) + acct_LDADD = $(LDADD) +@@ -789,6 +830,17 @@ + chmod__secontext_full_SOURCES = chmod--secontext_full.c + chmod__secontext_full_OBJECTS = chmod--secontext_full.$(OBJEXT) + chmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++chmod__secontext_full_mismatch_SOURCES = \ ++ chmod--secontext_full_mismatch.c ++chmod__secontext_full_mismatch_OBJECTS = \ ++ chmod--secontext_full_mismatch.$(OBJEXT) ++chmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++chmod__secontext_mismatch_SOURCES = chmod--secontext_mismatch.c ++chmod__secontext_mismatch_OBJECTS = \ ++ chmod--secontext_mismatch.$(OBJEXT) ++chmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + chown_SOURCES = chown.c + chown_OBJECTS = chown.$(OBJEXT) + chown_LDADD = $(LDADD) +@@ -1030,6 +1082,17 @@ + execve__secontext_full_SOURCES = execve--secontext_full.c + execve__secontext_full_OBJECTS = execve--secontext_full.$(OBJEXT) + execve__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execve__secontext_full_mismatch_SOURCES = \ ++ execve--secontext_full_mismatch.c ++execve__secontext_full_mismatch_OBJECTS = \ ++ execve--secontext_full_mismatch.$(OBJEXT) ++execve__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execve__secontext_mismatch_SOURCES = execve--secontext_mismatch.c ++execve__secontext_mismatch_OBJECTS = \ ++ execve--secontext_mismatch.$(OBJEXT) ++execve__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execve_v_SOURCES = execve-v.c + execve_v_OBJECTS = execve-v.$(OBJEXT) + execve_v_LDADD = $(LDADD) +@@ -1044,6 +1107,17 @@ + execveat__secontext_full_SOURCES = execveat--secontext_full.c + execveat__secontext_full_OBJECTS = execveat--secontext_full.$(OBJEXT) + execveat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execveat__secontext_full_mismatch_SOURCES = \ ++ execveat--secontext_full_mismatch.c ++execveat__secontext_full_mismatch_OBJECTS = \ ++ execveat--secontext_full_mismatch.$(OBJEXT) ++execveat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execveat__secontext_mismatch_SOURCES = execveat--secontext_mismatch.c ++execveat__secontext_mismatch_OBJECTS = \ ++ execveat--secontext_mismatch.$(OBJEXT) ++execveat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execveat_v_SOURCES = execveat-v.c + execveat_v_OBJECTS = execveat-v.$(OBJEXT) + execveat_v_LDADD = $(LDADD) +@@ -1060,6 +1134,18 @@ + faccessat--secontext_full.$(OBJEXT) + faccessat__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat__secontext_full_mismatch_SOURCES = \ ++ faccessat--secontext_full_mismatch.c ++faccessat__secontext_full_mismatch_OBJECTS = \ ++ faccessat--secontext_full_mismatch.$(OBJEXT) ++faccessat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat__secontext_mismatch_SOURCES = \ ++ faccessat--secontext_mismatch.c ++faccessat__secontext_mismatch_OBJECTS = \ ++ faccessat--secontext_mismatch.$(OBJEXT) ++faccessat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_P_SOURCES = faccessat-P.c + faccessat_P_OBJECTS = faccessat-P.$(OBJEXT) + faccessat_P_LDADD = $(LDADD) +@@ -1076,6 +1162,18 @@ + faccessat-y--secontext_full.$(OBJEXT) + faccessat_y__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat_y__secontext_full_mismatch_SOURCES = \ ++ faccessat-y--secontext_full_mismatch.c ++faccessat_y__secontext_full_mismatch_OBJECTS = \ ++ faccessat-y--secontext_full_mismatch.$(OBJEXT) ++faccessat_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat_y__secontext_mismatch_SOURCES = \ ++ faccessat-y--secontext_mismatch.c ++faccessat_y__secontext_mismatch_OBJECTS = \ ++ faccessat-y--secontext_mismatch.$(OBJEXT) ++faccessat_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_yy_SOURCES = faccessat-yy.c + faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT) + faccessat_yy_LDADD = $(LDADD) +@@ -1125,6 +1223,18 @@ + fanotify_mark--secontext_full.$(OBJEXT) + fanotify_mark__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_full_mismatch_SOURCES = \ ++ fanotify_mark--secontext_full_mismatch.c ++fanotify_mark__secontext_full_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_full_mismatch.$(OBJEXT) ++fanotify_mark__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_mismatch_SOURCES = \ ++ fanotify_mark--secontext_mismatch.c ++fanotify_mark__secontext_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_mismatch.$(OBJEXT) ++fanotify_mark__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c + fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT) + fanotify_mark_Xabbrev_LDADD = $(LDADD) +@@ -1151,6 +1261,17 @@ + fchmod__secontext_full_SOURCES = fchmod--secontext_full.c + fchmod__secontext_full_OBJECTS = fchmod--secontext_full.$(OBJEXT) + fchmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod__secontext_full_mismatch_SOURCES = \ ++ fchmod--secontext_full_mismatch.c ++fchmod__secontext_full_mismatch_OBJECTS = \ ++ fchmod--secontext_full_mismatch.$(OBJEXT) ++fchmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod__secontext_mismatch_SOURCES = fchmod--secontext_mismatch.c ++fchmod__secontext_mismatch_OBJECTS = \ ++ fchmod--secontext_mismatch.$(OBJEXT) ++fchmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmod_y_SOURCES = fchmod-y.c + fchmod_y_OBJECTS = fchmod-y.$(OBJEXT) + fchmod_y_LDADD = $(LDADD) +@@ -1161,6 +1282,17 @@ + fchmod_y__secontext_full_SOURCES = fchmod-y--secontext_full.c + fchmod_y__secontext_full_OBJECTS = fchmod-y--secontext_full.$(OBJEXT) + fchmod_y__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod_y__secontext_full_mismatch_SOURCES = \ ++ fchmod-y--secontext_full_mismatch.c ++fchmod_y__secontext_full_mismatch_OBJECTS = \ ++ fchmod-y--secontext_full_mismatch.$(OBJEXT) ++fchmod_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod_y__secontext_mismatch_SOURCES = fchmod-y--secontext_mismatch.c ++fchmod_y__secontext_mismatch_OBJECTS = \ ++ fchmod-y--secontext_mismatch.$(OBJEXT) ++fchmod_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmodat_SOURCES = fchmodat.c + fchmodat_OBJECTS = fchmodat.$(OBJEXT) + fchmodat_LDADD = $(LDADD) +@@ -1171,6 +1303,17 @@ + fchmodat__secontext_full_SOURCES = fchmodat--secontext_full.c + fchmodat__secontext_full_OBJECTS = fchmodat--secontext_full.$(OBJEXT) + fchmodat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmodat__secontext_full_mismatch_SOURCES = \ ++ fchmodat--secontext_full_mismatch.c ++fchmodat__secontext_full_mismatch_OBJECTS = \ ++ fchmodat--secontext_full_mismatch.$(OBJEXT) ++fchmodat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmodat__secontext_mismatch_SOURCES = fchmodat--secontext_mismatch.c ++fchmodat__secontext_mismatch_OBJECTS = \ ++ fchmodat--secontext_mismatch.$(OBJEXT) ++fchmodat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchown_SOURCES = fchown.c + fchown_OBJECTS = fchown.$(OBJEXT) + fchown_LDADD = $(LDADD) +@@ -1189,6 +1332,17 @@ + fchownat__secontext_full_SOURCES = fchownat--secontext_full.c + fchownat__secontext_full_OBJECTS = fchownat--secontext_full.$(OBJEXT) + fchownat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchownat__secontext_full_mismatch_SOURCES = \ ++ fchownat--secontext_full_mismatch.c ++fchownat__secontext_full_mismatch_OBJECTS = \ ++ fchownat--secontext_full_mismatch.$(OBJEXT) ++fchownat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchownat__secontext_mismatch_SOURCES = fchownat--secontext_mismatch.c ++fchownat__secontext_mismatch_OBJECTS = \ ++ fchownat--secontext_mismatch.$(OBJEXT) ++fchownat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fcntl_SOURCES = fcntl.c + fcntl_OBJECTS = fcntl.$(OBJEXT) + fcntl_LDADD = $(LDADD) +@@ -1226,6 +1380,18 @@ + file_handle--secontext_full.$(OBJEXT) + file_handle__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++file_handle__secontext_full_mismatch_SOURCES = \ ++ file_handle--secontext_full_mismatch.c ++file_handle__secontext_full_mismatch_OBJECTS = \ ++ file_handle--secontext_full_mismatch.$(OBJEXT) ++file_handle__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++file_handle__secontext_mismatch_SOURCES = \ ++ file_handle--secontext_mismatch.c ++file_handle__secontext_mismatch_OBJECTS = \ ++ file_handle--secontext_mismatch.$(OBJEXT) ++file_handle__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + filter_unavailable_SOURCES = filter-unavailable.c + filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT) + filter_unavailable_DEPENDENCIES = $(LDADD) +@@ -2317,6 +2483,17 @@ + linkat__secontext_full_SOURCES = linkat--secontext_full.c + linkat__secontext_full_OBJECTS = linkat--secontext_full.$(OBJEXT) + linkat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++linkat__secontext_full_mismatch_SOURCES = \ ++ linkat--secontext_full_mismatch.c ++linkat__secontext_full_mismatch_OBJECTS = \ ++ linkat--secontext_full_mismatch.$(OBJEXT) ++linkat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++linkat__secontext_mismatch_SOURCES = linkat--secontext_mismatch.c ++linkat__secontext_mismatch_OBJECTS = \ ++ linkat--secontext_mismatch.$(OBJEXT) ++linkat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + list_sigaction_signum_SOURCES = list_sigaction_signum.c + list_sigaction_signum_OBJECTS = list_sigaction_signum.$(OBJEXT) + list_sigaction_signum_LDADD = $(LDADD) +@@ -2975,6 +3152,15 @@ + open__secontext_full_SOURCES = open--secontext_full.c + open__secontext_full_OBJECTS = open--secontext_full.$(OBJEXT) + open__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++open__secontext_full_mismatch_SOURCES = \ ++ open--secontext_full_mismatch.c ++open__secontext_full_mismatch_OBJECTS = \ ++ open--secontext_full_mismatch.$(OBJEXT) ++open__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++open__secontext_mismatch_SOURCES = open--secontext_mismatch.c ++open__secontext_mismatch_OBJECTS = open--secontext_mismatch.$(OBJEXT) ++open__secontext_mismatch_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) + open_tree_SOURCES = open_tree.c + open_tree_OBJECTS = open_tree.$(OBJEXT) + open_tree_LDADD = $(LDADD) +@@ -2993,6 +3179,17 @@ + openat__secontext_full_SOURCES = openat--secontext_full.c + openat__secontext_full_OBJECTS = openat--secontext_full.$(OBJEXT) + openat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++openat__secontext_full_mismatch_SOURCES = \ ++ openat--secontext_full_mismatch.c ++openat__secontext_full_mismatch_OBJECTS = \ ++ openat--secontext_full_mismatch.$(OBJEXT) ++openat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++openat__secontext_mismatch_SOURCES = openat--secontext_mismatch.c ++openat__secontext_mismatch_OBJECTS = \ ++ openat--secontext_mismatch.$(OBJEXT) ++openat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + openat2_SOURCES = openat2.c + openat2_OBJECTS = openat2.$(OBJEXT) + openat2_LDADD = $(LDADD) +@@ -4449,6 +4646,8 @@ + ./$(DEPDIR)/_newselect.Po ./$(DEPDIR)/accept.Po \ + ./$(DEPDIR)/accept4.Po ./$(DEPDIR)/access--secontext.Po \ + ./$(DEPDIR)/access--secontext_full.Po ./$(DEPDIR)/access.Po \ ++ ./$(DEPDIR)/access--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/access--secontext_mismatch.Po \ + ./$(DEPDIR)/acct.Po ./$(DEPDIR)/add_key.Po \ + ./$(DEPDIR)/adjtimex.Po ./$(DEPDIR)/aio.Po \ + ./$(DEPDIR)/aio_pgetevents.Po ./$(DEPDIR)/alarm.Po \ +@@ -4468,6 +4667,8 @@ + ./$(DEPDIR)/chdir.Po ./$(DEPDIR)/check_sigblock.Po \ + ./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod--secontext.Po \ + ./$(DEPDIR)/chmod--secontext_full.Po ./$(DEPDIR)/chmod.Po \ ++ ./$(DEPDIR)/chmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/chmod--secontext_mismatch.Po \ + ./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \ + ./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \ + ./$(DEPDIR)/clock_adjtime64.Po ./$(DEPDIR)/clock_nanosleep.Po \ +@@ -4503,14 +4704,22 @@ + ./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \ + ./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve--secontext.Po \ + ./$(DEPDIR)/execve--secontext_full.Po ./$(DEPDIR)/execve-v.Po \ ++ ./$(DEPDIR)/execve--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execve--secontext_mismatch.Po \ + ./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat--secontext.Po \ + ./$(DEPDIR)/execveat--secontext_full.Po \ ++ ./$(DEPDIR)/execveat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execveat--secontext_mismatch.Po \ + ./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \ + ./$(DEPDIR)/faccessat--secontext.Po \ + ./$(DEPDIR)/faccessat--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-P.Po \ + ./$(DEPDIR)/faccessat-y--secontext.Po \ + ./$(DEPDIR)/faccessat-y--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-y.Po ./$(DEPDIR)/faccessat-yy.Po \ + ./$(DEPDIR)/faccessat.Po ./$(DEPDIR)/faccessat2-P.Po \ + ./$(DEPDIR)/faccessat2-y.Po ./$(DEPDIR)/faccessat2-yy.Po \ +@@ -4519,26 +4728,38 @@ + ./$(DEPDIR)/fanotify_init.Po \ + ./$(DEPDIR)/fanotify_mark--secontext.Po \ + ./$(DEPDIR)/fanotify_mark--secontext_full.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po \ + ./$(DEPDIR)/fanotify_mark-Xabbrev.Po \ + ./$(DEPDIR)/fanotify_mark-Xraw.Po \ + ./$(DEPDIR)/fanotify_mark-Xverbose.Po \ + ./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \ + ./$(DEPDIR)/fchmod--secontext.Po \ + ./$(DEPDIR)/fchmod--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y--secontext.Po \ + ./$(DEPDIR)/fchmod-y--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y.Po ./$(DEPDIR)/fchmod.Po \ + ./$(DEPDIR)/fchmodat--secontext.Po \ + ./$(DEPDIR)/fchmodat--secontext_full.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmodat.Po ./$(DEPDIR)/fchown.Po \ + ./$(DEPDIR)/fchown32.Po ./$(DEPDIR)/fchownat--secontext.Po \ + ./$(DEPDIR)/fchownat--secontext_full.Po \ ++ ./$(DEPDIR)/fchownat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchownat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchownat.Po \ + ./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fcntl64--pidns-translation.Po \ + ./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \ + ./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle--secontext.Po \ + ./$(DEPDIR)/file_handle--secontext_full.Po \ ++ ./$(DEPDIR)/file_handle--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/file_handle--secontext_mismatch.Po \ + ./$(DEPDIR)/file_handle.Po ./$(DEPDIR)/filter-unavailable.Po \ + ./$(DEPDIR)/filter_seccomp-flag.Po \ + ./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \ +@@ -4753,6 +4972,8 @@ + ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \ + ./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat--secontext.Po \ + ./$(DEPDIR)/linkat--secontext_full.Po ./$(DEPDIR)/linkat.Po \ ++ ./$(DEPDIR)/linkat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/linkat--secontext_mismatch.Po \ + ./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \ + ./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \ + ./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \ +@@ -4867,9 +5088,13 @@ + ./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \ + ./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open--secontext.Po \ + ./$(DEPDIR)/open--secontext_full.Po ./$(DEPDIR)/open.Po \ ++ ./$(DEPDIR)/open--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/open--secontext_mismatch.Po \ + ./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \ + ./$(DEPDIR)/openat--secontext.Po \ + ./$(DEPDIR)/openat--secontext_full.Po ./$(DEPDIR)/openat.Po \ ++ ./$(DEPDIR)/openat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/openat--secontext_mismatch.Po \ + ./$(DEPDIR)/openat2-Xabbrev.Po ./$(DEPDIR)/openat2-Xraw.Po \ + ./$(DEPDIR)/openat2-Xverbose.Po \ + ./$(DEPDIR)/openat2-v-y-Xabbrev.Po \ +@@ -5118,7 +5343,8 @@ + am__v_CCLD_1 = + SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ + accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4467,7 +4665,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4483,24 +4682,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4587,6 +4802,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4640,8 +4856,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -4752,7 +4970,8 @@ + xetpriority--pidns-translation.c xettimeofday.c zeroargc.c + DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ + accept.c accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4761,7 +4980,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4777,24 +4997,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4881,6 +5117,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4934,8 +5171,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -6211,66 +6450,126 @@ + secontext_EXECUTABLES = \ + access--secontext \ + access--secontext_full \ ++ access--secontext_full_mismatch \ ++ access--secontext_mismatch \ + chmod--secontext \ + chmod--secontext_full \ ++ chmod--secontext_full_mismatch \ ++ chmod--secontext_mismatch \ + execve--secontext \ + execve--secontext_full \ ++ execve--secontext_full_mismatch \ ++ execve--secontext_mismatch \ + execveat--secontext \ + execveat--secontext_full \ ++ execveat--secontext_full_mismatch \ ++ execveat--secontext_mismatch \ + faccessat--secontext \ + faccessat--secontext_full \ ++ faccessat--secontext_full_mismatch \ ++ faccessat--secontext_mismatch \ + faccessat-y--secontext \ + faccessat-y--secontext_full \ ++ faccessat-y--secontext_full_mismatch \ ++ faccessat-y--secontext_mismatch \ + fanotify_mark--secontext \ + fanotify_mark--secontext_full \ ++ fanotify_mark--secontext_full_mismatch \ ++ fanotify_mark--secontext_mismatch \ + fchmod--secontext \ + fchmod--secontext_full \ ++ fchmod--secontext_full_mismatch \ ++ fchmod--secontext_mismatch \ + fchmod-y--secontext \ + fchmod-y--secontext_full \ ++ fchmod-y--secontext_full_mismatch \ ++ fchmod-y--secontext_mismatch \ + fchmodat--secontext \ + fchmodat--secontext_full \ ++ fchmodat--secontext_full_mismatch \ ++ fchmodat--secontext_mismatch \ + fchownat--secontext \ + fchownat--secontext_full \ ++ fchownat--secontext_full_mismatch \ ++ fchownat--secontext_mismatch \ + file_handle--secontext \ + file_handle--secontext_full \ ++ file_handle--secontext_full_mismatch \ ++ file_handle--secontext_mismatch \ + linkat--secontext \ + linkat--secontext_full \ ++ linkat--secontext_full_mismatch \ ++ linkat--secontext_mismatch \ + open--secontext \ + open--secontext_full \ ++ open--secontext_full_mismatch \ ++ open--secontext_mismatch \ + openat--secontext \ + openat--secontext_full \ ++ openat--secontext_full_mismatch \ ++ openat--secontext_mismatch \ + # + + access__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + access__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + attach_f_p_LDADD = -lpthread $(LDADD) + count_f_LDADD = -lpthread $(LDADD) + delay_LDADD = $(clock_LIBS) $(LDADD) +@@ -6324,15 +6623,20 @@ + # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. + GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ + accept4.gen.test access.gen.test access--secontext.gen.test \ +- access--secontext_full.gen.test acct.gen.test add_key.gen.test \ +- adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test \ +- alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test \ ++ access--secontext_full.gen.test \ ++ access--secontext_full_mismatch.gen.test \ ++ access--secontext_mismatch.gen.test acct.gen.test \ ++ add_key.gen.test adjtimex.gen.test aio.gen.test \ ++ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \ ++ bpf-obj_get_info_by_fd.gen.test \ + bpf-obj_get_info_by_fd-prog.gen.test \ + bpf-obj_get_info_by_fd-prog-v.gen.test \ + bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test \ + btrfs.gen.test chdir.gen.test chmod.gen.test \ + chmod--secontext.gen.test chmod--secontext_full.gen.test \ +- chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test \ ++ chmod--secontext_full_mismatch.gen.test \ ++ chmod--secontext_mismatch.gen.test chown.gen.test \ ++ chown32.gen.test chroot.gen.test clock.gen.test \ + clock_adjtime.gen.test clock_adjtime64.gen.test \ + clock_nanosleep.gen.test clock_xettime.gen.test \ + clock_xettime64.gen.test clone3.gen.test \ +@@ -6355,36 +6659,53 @@ + epoll_pwait2-P.gen.test epoll_pwait2-y.gen.test \ + epoll_wait.gen.test erestartsys.gen.test \ + execve--secontext.gen.test execve--secontext_full.gen.test \ +- execveat.gen.test execveat--secontext.gen.test \ +- execveat--secontext_full.gen.test execveat-v.gen.test \ ++ execve--secontext_full_mismatch.gen.test \ ++ execve--secontext_mismatch.gen.test execveat.gen.test \ ++ execveat--secontext.gen.test execveat--secontext_full.gen.test \ ++ execveat--secontext_full_mismatch.gen.test \ ++ execveat--secontext_mismatch.gen.test execveat-v.gen.test \ + faccessat--secontext.gen.test \ +- faccessat--secontext_full.gen.test faccessat-P.gen.test \ ++ faccessat--secontext_full.gen.test \ ++ faccessat--secontext_full_mismatch.gen.test \ ++ faccessat--secontext_mismatch.gen.test faccessat-P.gen.test \ + faccessat-y.gen.test faccessat-y--secontext.gen.test \ +- faccessat-y--secontext_full.gen.test faccessat-yy.gen.test \ ++ faccessat-y--secontext_full.gen.test \ ++ faccessat-y--secontext_full_mismatch.gen.test \ ++ faccessat-y--secontext_mismatch.gen.test faccessat-yy.gen.test \ + faccessat2-P.gen.test faccessat2-y.gen.test \ + faccessat2-yy.gen.test fadvise64_64.gen.test \ + fallocate.gen.test fanotify_init.gen.test \ + fanotify_mark.gen.test fanotify_mark--secontext.gen.test \ + fanotify_mark--secontext_full.gen.test \ ++ fanotify_mark--secontext_full_mismatch.gen.test \ ++ fanotify_mark--secontext_mismatch.gen.test \ + fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \ + fanotify_mark-Xverbose.gen.test fchdir.gen.test \ + fchmod.gen.test fchmod--secontext.gen.test \ +- fchmod--secontext_full.gen.test fchmod-y.gen.test \ ++ fchmod--secontext_full.gen.test \ ++ fchmod--secontext_full_mismatch.gen.test \ ++ fchmod--secontext_mismatch.gen.test fchmod-y.gen.test \ + fchmod-y--secontext.gen.test fchmod-y--secontext_full.gen.test \ +- fchmodat.gen.test fchmodat--secontext.gen.test \ +- fchmodat--secontext_full.gen.test fchown.gen.test \ ++ fchmod-y--secontext_full_mismatch.gen.test \ ++ fchmod-y--secontext_mismatch.gen.test fchmodat.gen.test \ ++ fchmodat--secontext.gen.test fchmodat--secontext_full.gen.test \ ++ fchmodat--secontext_full_mismatch.gen.test \ ++ fchmodat--secontext_mismatch.gen.test fchown.gen.test \ + fchown32.gen.test fchownat.gen.test \ + fchownat--secontext.gen.test fchownat--secontext_full.gen.test \ +- fcntl.gen.test fcntl--pidns-translation.gen.test \ +- fcntl64.gen.test fcntl64--pidns-translation.gen.test \ +- fdatasync.gen.test file_handle.gen.test \ +- file_handle--secontext.gen.test \ +- file_handle--secontext_full.gen.test filter_seccomp.gen.test \ +- filter_seccomp-flag.gen.test finit_module.gen.test \ +- flock.gen.test fork-f.gen.test fsconfig.gen.test \ +- fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test \ +- fspick.gen.test fspick-P.gen.test fstat.gen.test \ +- fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ ++ fchownat--secontext_full_mismatch.gen.test \ ++ fchownat--secontext_mismatch.gen.test fcntl.gen.test \ ++ fcntl--pidns-translation.gen.test fcntl64.gen.test \ ++ fcntl64--pidns-translation.gen.test fdatasync.gen.test \ ++ file_handle.gen.test file_handle--secontext.gen.test \ ++ file_handle--secontext_full.gen.test \ ++ file_handle--secontext_full_mismatch.gen.test \ ++ file_handle--secontext_mismatch.gen.test \ ++ filter_seccomp.gen.test filter_seccomp-flag.gen.test \ ++ finit_module.gen.test flock.gen.test fork-f.gen.test \ ++ fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \ ++ fsopen.gen.test fspick.gen.test fspick-P.gen.test \ ++ fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ + fstat-Xverbose.gen.test fstat64.gen.test \ + fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \ + fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \ +@@ -6511,8 +6832,10 @@ + landlock_restrict_self-y.gen.test lchown.gen.test \ + lchown32.gen.test link.gen.test linkat.gen.test \ + linkat--secontext.gen.test linkat--secontext_full.gen.test \ +- lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \ +- madvise.gen.test maybe_switch_current_tcp.gen.test \ ++ linkat--secontext_full_mismatch.gen.test \ ++ linkat--secontext_mismatch.gen.test lookup_dcookie.gen.test \ ++ lstat.gen.test lstat64.gen.test madvise.gen.test \ ++ maybe_switch_current_tcp.gen.test \ + maybe_switch_current_tcp--quiet-thread-execve.gen.test \ + mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \ + mbind-Xverbose.gen.test membarrier.gen.test \ +@@ -6581,16 +6904,19 @@ + oldselect.gen.test oldselect-P.gen.test \ + oldselect-efault.gen.test oldselect-efault-P.gen.test \ + oldstat.gen.test open.gen.test open--secontext.gen.test \ +- open--secontext_full.gen.test open_tree.gen.test \ ++ open--secontext_full.gen.test \ ++ open--secontext_full_mismatch.gen.test \ ++ open--secontext_mismatch.gen.test open_tree.gen.test \ + open_tree-P.gen.test openat.gen.test \ + openat--secontext.gen.test openat--secontext_full.gen.test \ +- openat2.gen.test openat2-Xabbrev.gen.test \ +- openat2-Xraw.gen.test openat2-Xverbose.gen.test \ +- openat2-v.gen.test openat2-v-y.gen.test \ +- openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test \ +- openat2-v-y-Xverbose.gen.test openat2-y.gen.test \ +- orphaned_process_group.gen.test osf_utimes.gen.test \ +- pause.gen.test perf_event_open.gen.test \ ++ openat--secontext_full_mismatch.gen.test \ ++ openat--secontext_mismatch.gen.test openat2.gen.test \ ++ openat2-Xabbrev.gen.test openat2-Xraw.gen.test \ ++ openat2-Xverbose.gen.test openat2-v.gen.test \ ++ openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \ ++ openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \ ++ openat2-y.gen.test orphaned_process_group.gen.test \ ++ osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \ + perf_event_open_nonverbose.gen.test \ + perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \ + personality-Xraw.gen.test personality-Xverbose.gen.test \ +@@ -7154,6 +7480,14 @@ + @rm -f access--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(access__secontext_full_OBJECTS) $(access__secontext_full_LDADD) $(LIBS) + ++access--secontext_full_mismatch$(EXEEXT): $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_LDADD) $(LIBS) ++ ++access--secontext_mismatch$(EXEEXT): $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_LDADD) $(LIBS) ++ + acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) + @rm -f acct$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS) +@@ -7282,6 +7616,14 @@ + @rm -f chmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_OBJECTS) $(chmod__secontext_full_LDADD) $(LIBS) + ++chmod--secontext_full_mismatch$(EXEEXT): $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++chmod--secontext_mismatch$(EXEEXT): $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_LDADD) $(LIBS) ++ + chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) + @rm -f chown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS) +@@ -7526,6 +7868,14 @@ + @rm -f execve--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve__secontext_full_OBJECTS) $(execve__secontext_full_LDADD) $(LIBS) + ++execve--secontext_full_mismatch$(EXEEXT): $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execve--secontext_mismatch$(EXEEXT): $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_LDADD) $(LIBS) ++ + execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) + @rm -f execve-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS) +@@ -7542,6 +7892,14 @@ + @rm -f execveat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_OBJECTS) $(execveat__secontext_full_LDADD) $(LIBS) + ++execveat--secontext_full_mismatch$(EXEEXT): $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execveat--secontext_mismatch$(EXEEXT): $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_LDADD) $(LIBS) ++ + execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) + @rm -f execveat-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS) +@@ -7558,6 +7916,14 @@ + @rm -f faccessat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_OBJECTS) $(faccessat__secontext_full_LDADD) $(LIBS) + ++faccessat--secontext_full_mismatch$(EXEEXT): $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat--secontext_mismatch$(EXEEXT): $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) + @rm -f faccessat-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS) +@@ -7574,6 +7940,14 @@ + @rm -f faccessat-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_OBJECTS) $(faccessat_y__secontext_full_LDADD) $(LIBS) + ++faccessat-y--secontext_full_mismatch$(EXEEXT): $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat-y--secontext_mismatch$(EXEEXT): $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) + @rm -f faccessat-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS) +@@ -7622,6 +7996,14 @@ + @rm -f fanotify_mark--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_OBJECTS) $(fanotify_mark__secontext_full_LDADD) $(LIBS) + ++fanotify_mark--secontext_full_mismatch$(EXEEXT): $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fanotify_mark--secontext_mismatch$(EXEEXT): $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_LDADD) $(LIBS) ++ + fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES) + @rm -f fanotify_mark-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS) +@@ -7650,6 +8032,14 @@ + @rm -f fchmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_OBJECTS) $(fchmod__secontext_full_LDADD) $(LIBS) + ++fchmod--secontext_full_mismatch$(EXEEXT): $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod--secontext_mismatch$(EXEEXT): $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_LDADD) $(LIBS) ++ + fchmod-y$(EXEEXT): $(fchmod_y_OBJECTS) $(fchmod_y_DEPENDENCIES) $(EXTRA_fchmod_y_DEPENDENCIES) + @rm -f fchmod-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y_OBJECTS) $(fchmod_y_LDADD) $(LIBS) +@@ -7662,6 +8052,14 @@ + @rm -f fchmod-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_OBJECTS) $(fchmod_y__secontext_full_LDADD) $(LIBS) + ++fchmod-y--secontext_full_mismatch$(EXEEXT): $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod-y--secontext_mismatch$(EXEEXT): $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_LDADD) $(LIBS) ++ + fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) + @rm -f fchmodat$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS) +@@ -7674,6 +8072,14 @@ + @rm -f fchmodat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_OBJECTS) $(fchmodat__secontext_full_LDADD) $(LIBS) + ++fchmodat--secontext_full_mismatch$(EXEEXT): $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmodat--secontext_mismatch$(EXEEXT): $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_LDADD) $(LIBS) ++ + fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) + @rm -f fchown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS) +@@ -7694,6 +8100,14 @@ + @rm -f fchownat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_OBJECTS) $(fchownat__secontext_full_LDADD) $(LIBS) + ++fchownat--secontext_full_mismatch$(EXEEXT): $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchownat--secontext_mismatch$(EXEEXT): $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_LDADD) $(LIBS) ++ + fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) + @rm -f fcntl$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS) +@@ -7730,6 +8144,14 @@ + @rm -f file_handle--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_OBJECTS) $(file_handle__secontext_full_LDADD) $(LIBS) + ++file_handle--secontext_full_mismatch$(EXEEXT): $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_LDADD) $(LIBS) ++ ++file_handle--secontext_mismatch$(EXEEXT): $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_LDADD) $(LIBS) ++ + filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) + @rm -f filter-unavailable$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS) +@@ -8774,6 +9196,14 @@ + @rm -f linkat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_OBJECTS) $(linkat__secontext_full_LDADD) $(LIBS) + ++linkat--secontext_full_mismatch$(EXEEXT): $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++linkat--secontext_mismatch$(EXEEXT): $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_LDADD) $(LIBS) ++ + list_sigaction_signum$(EXEEXT): $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_DEPENDENCIES) $(EXTRA_list_sigaction_signum_DEPENDENCIES) + @rm -f list_sigaction_signum$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_LDADD) $(LIBS) +@@ -9422,6 +9852,14 @@ + @rm -f open--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open__secontext_full_OBJECTS) $(open__secontext_full_LDADD) $(LIBS) + ++open--secontext_full_mismatch$(EXEEXT): $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_LDADD) $(LIBS) ++ ++open--secontext_mismatch$(EXEEXT): $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_LDADD) $(LIBS) ++ + open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) + @rm -f open_tree$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS) +@@ -9442,6 +9880,14 @@ + @rm -f openat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat__secontext_full_OBJECTS) $(openat__secontext_full_LDADD) $(LIBS) + ++openat--secontext_full_mismatch$(EXEEXT): $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++openat--secontext_mismatch$(EXEEXT): $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_LDADD) $(LIBS) ++ + openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) + @rm -f openat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS) +@@ -10834,6 +11280,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept4.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acct.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@ # am--include-marker +@@ -10866,6 +11314,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sigign.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown32.Po@am__quote@ # am--include-marker +@@ -10927,17 +11377,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventfd.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker +@@ -10951,6 +11409,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@ # am--include-marker +@@ -10958,17 +11418,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker +@@ -10978,6 +11446,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker +@@ -11275,6 +11745,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/llseek.Po@am__quote@ # am--include-marker +@@ -11437,11 +11909,15 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker +@@ -13003,6 +13479,12 @@ + $(srcdir)/access--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/access--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/access--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13054,6 +13536,12 @@ + $(srcdir)/chmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/chmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/chmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13219,6 +13707,12 @@ + $(srcdir)/execve--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execve--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execve--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13228,6 +13722,12 @@ + $(srcdir)/execveat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execveat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execveat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13237,6 +13737,12 @@ + $(srcdir)/faccessat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13249,6 +13755,12 @@ + $(srcdir)/faccessat-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13279,6 +13791,12 @@ + $(srcdir)/fanotify_mark--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fanotify_mark--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fanotify_mark--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13300,6 +13818,12 @@ + $(srcdir)/fchmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmod-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13309,6 +13833,12 @@ + $(srcdir)/fchmod-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13318,6 +13848,12 @@ + $(srcdir)/fchmodat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmodat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmodat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13333,6 +13869,12 @@ + $(srcdir)/fchownat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchownat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchownat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13357,6 +13899,12 @@ + $(srcdir)/file_handle--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/file_handle--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/file_handle--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14116,6 +14664,12 @@ + $(srcdir)/linkat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/linkat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/linkat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14545,6 +15099,12 @@ + $(srcdir)/open--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/open--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/open--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14560,6 +15120,12 @@ + $(srcdir)/openat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/openat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/openat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +--- old/tests-m32/Makefile.in 2022-02-07 20:23:38.724063729 +0100 ++++ new/tests-m32/Makefile.in 2022-02-07 20:24:03.512063387 +0100 +@@ -614,25 +614,55 @@ + xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \ + xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT) + am__EXEEXT_2 = access--secontext$(EXEEXT) \ +- access--secontext_full$(EXEEXT) chmod--secontext$(EXEEXT) \ +- chmod--secontext_full$(EXEEXT) execve--secontext$(EXEEXT) \ +- execve--secontext_full$(EXEEXT) execveat--secontext$(EXEEXT) \ +- execveat--secontext_full$(EXEEXT) \ ++ access--secontext_full$(EXEEXT) \ ++ access--secontext_full_mismatch$(EXEEXT) \ ++ access--secontext_mismatch$(EXEEXT) chmod--secontext$(EXEEXT) \ ++ chmod--secontext_full$(EXEEXT) \ ++ chmod--secontext_full_mismatch$(EXEEXT) \ ++ chmod--secontext_mismatch$(EXEEXT) execve--secontext$(EXEEXT) \ ++ execve--secontext_full$(EXEEXT) \ ++ execve--secontext_full_mismatch$(EXEEXT) \ ++ execve--secontext_mismatch$(EXEEXT) \ ++ execveat--secontext$(EXEEXT) execveat--secontext_full$(EXEEXT) \ ++ execveat--secontext_full_mismatch$(EXEEXT) \ ++ execveat--secontext_mismatch$(EXEEXT) \ + faccessat--secontext$(EXEEXT) \ + faccessat--secontext_full$(EXEEXT) \ ++ faccessat--secontext_full_mismatch$(EXEEXT) \ ++ faccessat--secontext_mismatch$(EXEEXT) \ + faccessat-y--secontext$(EXEEXT) \ + faccessat-y--secontext_full$(EXEEXT) \ ++ faccessat-y--secontext_full_mismatch$(EXEEXT) \ ++ faccessat-y--secontext_mismatch$(EXEEXT) \ + fanotify_mark--secontext$(EXEEXT) \ + fanotify_mark--secontext_full$(EXEEXT) \ ++ fanotify_mark--secontext_full_mismatch$(EXEEXT) \ ++ fanotify_mark--secontext_mismatch$(EXEEXT) \ + fchmod--secontext$(EXEEXT) fchmod--secontext_full$(EXEEXT) \ ++ fchmod--secontext_full_mismatch$(EXEEXT) \ ++ fchmod--secontext_mismatch$(EXEEXT) \ + fchmod-y--secontext$(EXEEXT) fchmod-y--secontext_full$(EXEEXT) \ ++ fchmod-y--secontext_full_mismatch$(EXEEXT) \ ++ fchmod-y--secontext_mismatch$(EXEEXT) \ + fchmodat--secontext$(EXEEXT) fchmodat--secontext_full$(EXEEXT) \ ++ fchmodat--secontext_full_mismatch$(EXEEXT) \ ++ fchmodat--secontext_mismatch$(EXEEXT) \ + fchownat--secontext$(EXEEXT) fchownat--secontext_full$(EXEEXT) \ ++ fchownat--secontext_full_mismatch$(EXEEXT) \ ++ fchownat--secontext_mismatch$(EXEEXT) \ + file_handle--secontext$(EXEEXT) \ + file_handle--secontext_full$(EXEEXT) \ ++ file_handle--secontext_full_mismatch$(EXEEXT) \ ++ file_handle--secontext_mismatch$(EXEEXT) \ + linkat--secontext$(EXEEXT) linkat--secontext_full$(EXEEXT) \ +- open--secontext$(EXEEXT) open--secontext_full$(EXEEXT) \ +- openat--secontext$(EXEEXT) openat--secontext_full$(EXEEXT) ++ linkat--secontext_full_mismatch$(EXEEXT) \ ++ linkat--secontext_mismatch$(EXEEXT) open--secontext$(EXEEXT) \ ++ open--secontext_full$(EXEEXT) \ ++ open--secontext_full_mismatch$(EXEEXT) \ ++ open--secontext_mismatch$(EXEEXT) openat--secontext$(EXEEXT) \ ++ openat--secontext_full$(EXEEXT) \ ++ openat--secontext_full_mismatch$(EXEEXT) \ ++ openat--secontext_mismatch$(EXEEXT) + ARFLAGS = cru + AM_V_AR = $(am__v_AR_@AM_V@) + am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +@@ -662,6 +692,17 @@ + access__secontext_full_SOURCES = access--secontext_full.c + access__secontext_full_OBJECTS = access--secontext_full.$(OBJEXT) + access__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++access__secontext_full_mismatch_SOURCES = \ ++ access--secontext_full_mismatch.c ++access__secontext_full_mismatch_OBJECTS = \ ++ access--secontext_full_mismatch.$(OBJEXT) ++access__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++access__secontext_mismatch_SOURCES = access--secontext_mismatch.c ++access__secontext_mismatch_OBJECTS = \ ++ access--secontext_mismatch.$(OBJEXT) ++access__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + acct_SOURCES = acct.c + acct_OBJECTS = acct.$(OBJEXT) + acct_LDADD = $(LDADD) +@@ -790,6 +831,17 @@ + chmod__secontext_full_SOURCES = chmod--secontext_full.c + chmod__secontext_full_OBJECTS = chmod--secontext_full.$(OBJEXT) + chmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++chmod__secontext_full_mismatch_SOURCES = \ ++ chmod--secontext_full_mismatch.c ++chmod__secontext_full_mismatch_OBJECTS = \ ++ chmod--secontext_full_mismatch.$(OBJEXT) ++chmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++chmod__secontext_mismatch_SOURCES = chmod--secontext_mismatch.c ++chmod__secontext_mismatch_OBJECTS = \ ++ chmod--secontext_mismatch.$(OBJEXT) ++chmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + chown_SOURCES = chown.c + chown_OBJECTS = chown.$(OBJEXT) + chown_LDADD = $(LDADD) +@@ -1031,6 +1083,17 @@ + execve__secontext_full_SOURCES = execve--secontext_full.c + execve__secontext_full_OBJECTS = execve--secontext_full.$(OBJEXT) + execve__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execve__secontext_full_mismatch_SOURCES = \ ++ execve--secontext_full_mismatch.c ++execve__secontext_full_mismatch_OBJECTS = \ ++ execve--secontext_full_mismatch.$(OBJEXT) ++execve__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execve__secontext_mismatch_SOURCES = execve--secontext_mismatch.c ++execve__secontext_mismatch_OBJECTS = \ ++ execve--secontext_mismatch.$(OBJEXT) ++execve__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execve_v_SOURCES = execve-v.c + execve_v_OBJECTS = execve-v.$(OBJEXT) + execve_v_LDADD = $(LDADD) +@@ -1045,6 +1108,17 @@ + execveat__secontext_full_SOURCES = execveat--secontext_full.c + execveat__secontext_full_OBJECTS = execveat--secontext_full.$(OBJEXT) + execveat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execveat__secontext_full_mismatch_SOURCES = \ ++ execveat--secontext_full_mismatch.c ++execveat__secontext_full_mismatch_OBJECTS = \ ++ execveat--secontext_full_mismatch.$(OBJEXT) ++execveat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execveat__secontext_mismatch_SOURCES = execveat--secontext_mismatch.c ++execveat__secontext_mismatch_OBJECTS = \ ++ execveat--secontext_mismatch.$(OBJEXT) ++execveat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execveat_v_SOURCES = execveat-v.c + execveat_v_OBJECTS = execveat-v.$(OBJEXT) + execveat_v_LDADD = $(LDADD) +@@ -1061,6 +1135,18 @@ + faccessat--secontext_full.$(OBJEXT) + faccessat__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat__secontext_full_mismatch_SOURCES = \ ++ faccessat--secontext_full_mismatch.c ++faccessat__secontext_full_mismatch_OBJECTS = \ ++ faccessat--secontext_full_mismatch.$(OBJEXT) ++faccessat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat__secontext_mismatch_SOURCES = \ ++ faccessat--secontext_mismatch.c ++faccessat__secontext_mismatch_OBJECTS = \ ++ faccessat--secontext_mismatch.$(OBJEXT) ++faccessat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_P_SOURCES = faccessat-P.c + faccessat_P_OBJECTS = faccessat-P.$(OBJEXT) + faccessat_P_LDADD = $(LDADD) +@@ -1077,6 +1163,18 @@ + faccessat-y--secontext_full.$(OBJEXT) + faccessat_y__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat_y__secontext_full_mismatch_SOURCES = \ ++ faccessat-y--secontext_full_mismatch.c ++faccessat_y__secontext_full_mismatch_OBJECTS = \ ++ faccessat-y--secontext_full_mismatch.$(OBJEXT) ++faccessat_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat_y__secontext_mismatch_SOURCES = \ ++ faccessat-y--secontext_mismatch.c ++faccessat_y__secontext_mismatch_OBJECTS = \ ++ faccessat-y--secontext_mismatch.$(OBJEXT) ++faccessat_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_yy_SOURCES = faccessat-yy.c + faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT) + faccessat_yy_LDADD = $(LDADD) +@@ -1126,6 +1224,18 @@ + fanotify_mark--secontext_full.$(OBJEXT) + fanotify_mark__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_full_mismatch_SOURCES = \ ++ fanotify_mark--secontext_full_mismatch.c ++fanotify_mark__secontext_full_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_full_mismatch.$(OBJEXT) ++fanotify_mark__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_mismatch_SOURCES = \ ++ fanotify_mark--secontext_mismatch.c ++fanotify_mark__secontext_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_mismatch.$(OBJEXT) ++fanotify_mark__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c + fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT) + fanotify_mark_Xabbrev_LDADD = $(LDADD) +@@ -1152,6 +1262,17 @@ + fchmod__secontext_full_SOURCES = fchmod--secontext_full.c + fchmod__secontext_full_OBJECTS = fchmod--secontext_full.$(OBJEXT) + fchmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod__secontext_full_mismatch_SOURCES = \ ++ fchmod--secontext_full_mismatch.c ++fchmod__secontext_full_mismatch_OBJECTS = \ ++ fchmod--secontext_full_mismatch.$(OBJEXT) ++fchmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod__secontext_mismatch_SOURCES = fchmod--secontext_mismatch.c ++fchmod__secontext_mismatch_OBJECTS = \ ++ fchmod--secontext_mismatch.$(OBJEXT) ++fchmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmod_y_SOURCES = fchmod-y.c + fchmod_y_OBJECTS = fchmod-y.$(OBJEXT) + fchmod_y_LDADD = $(LDADD) +@@ -1162,6 +1283,17 @@ + fchmod_y__secontext_full_SOURCES = fchmod-y--secontext_full.c + fchmod_y__secontext_full_OBJECTS = fchmod-y--secontext_full.$(OBJEXT) + fchmod_y__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod_y__secontext_full_mismatch_SOURCES = \ ++ fchmod-y--secontext_full_mismatch.c ++fchmod_y__secontext_full_mismatch_OBJECTS = \ ++ fchmod-y--secontext_full_mismatch.$(OBJEXT) ++fchmod_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod_y__secontext_mismatch_SOURCES = fchmod-y--secontext_mismatch.c ++fchmod_y__secontext_mismatch_OBJECTS = \ ++ fchmod-y--secontext_mismatch.$(OBJEXT) ++fchmod_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmodat_SOURCES = fchmodat.c + fchmodat_OBJECTS = fchmodat.$(OBJEXT) + fchmodat_LDADD = $(LDADD) +@@ -1172,6 +1304,17 @@ + fchmodat__secontext_full_SOURCES = fchmodat--secontext_full.c + fchmodat__secontext_full_OBJECTS = fchmodat--secontext_full.$(OBJEXT) + fchmodat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmodat__secontext_full_mismatch_SOURCES = \ ++ fchmodat--secontext_full_mismatch.c ++fchmodat__secontext_full_mismatch_OBJECTS = \ ++ fchmodat--secontext_full_mismatch.$(OBJEXT) ++fchmodat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmodat__secontext_mismatch_SOURCES = fchmodat--secontext_mismatch.c ++fchmodat__secontext_mismatch_OBJECTS = \ ++ fchmodat--secontext_mismatch.$(OBJEXT) ++fchmodat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchown_SOURCES = fchown.c + fchown_OBJECTS = fchown.$(OBJEXT) + fchown_LDADD = $(LDADD) +@@ -1190,6 +1333,17 @@ + fchownat__secontext_full_SOURCES = fchownat--secontext_full.c + fchownat__secontext_full_OBJECTS = fchownat--secontext_full.$(OBJEXT) + fchownat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchownat__secontext_full_mismatch_SOURCES = \ ++ fchownat--secontext_full_mismatch.c ++fchownat__secontext_full_mismatch_OBJECTS = \ ++ fchownat--secontext_full_mismatch.$(OBJEXT) ++fchownat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchownat__secontext_mismatch_SOURCES = fchownat--secontext_mismatch.c ++fchownat__secontext_mismatch_OBJECTS = \ ++ fchownat--secontext_mismatch.$(OBJEXT) ++fchownat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fcntl_SOURCES = fcntl.c + fcntl_OBJECTS = fcntl.$(OBJEXT) + fcntl_LDADD = $(LDADD) +@@ -1227,6 +1381,18 @@ + file_handle--secontext_full.$(OBJEXT) + file_handle__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++file_handle__secontext_full_mismatch_SOURCES = \ ++ file_handle--secontext_full_mismatch.c ++file_handle__secontext_full_mismatch_OBJECTS = \ ++ file_handle--secontext_full_mismatch.$(OBJEXT) ++file_handle__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++file_handle__secontext_mismatch_SOURCES = \ ++ file_handle--secontext_mismatch.c ++file_handle__secontext_mismatch_OBJECTS = \ ++ file_handle--secontext_mismatch.$(OBJEXT) ++file_handle__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + filter_unavailable_SOURCES = filter-unavailable.c + filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT) + filter_unavailable_DEPENDENCIES = $(LDADD) +@@ -2318,6 +2484,17 @@ + linkat__secontext_full_SOURCES = linkat--secontext_full.c + linkat__secontext_full_OBJECTS = linkat--secontext_full.$(OBJEXT) + linkat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++linkat__secontext_full_mismatch_SOURCES = \ ++ linkat--secontext_full_mismatch.c ++linkat__secontext_full_mismatch_OBJECTS = \ ++ linkat--secontext_full_mismatch.$(OBJEXT) ++linkat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++linkat__secontext_mismatch_SOURCES = linkat--secontext_mismatch.c ++linkat__secontext_mismatch_OBJECTS = \ ++ linkat--secontext_mismatch.$(OBJEXT) ++linkat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + list_sigaction_signum_SOURCES = list_sigaction_signum.c + list_sigaction_signum_OBJECTS = list_sigaction_signum.$(OBJEXT) + list_sigaction_signum_LDADD = $(LDADD) +@@ -2976,6 +3153,15 @@ + open__secontext_full_SOURCES = open--secontext_full.c + open__secontext_full_OBJECTS = open--secontext_full.$(OBJEXT) + open__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++open__secontext_full_mismatch_SOURCES = \ ++ open--secontext_full_mismatch.c ++open__secontext_full_mismatch_OBJECTS = \ ++ open--secontext_full_mismatch.$(OBJEXT) ++open__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++open__secontext_mismatch_SOURCES = open--secontext_mismatch.c ++open__secontext_mismatch_OBJECTS = open--secontext_mismatch.$(OBJEXT) ++open__secontext_mismatch_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) + open_tree_SOURCES = open_tree.c + open_tree_OBJECTS = open_tree.$(OBJEXT) + open_tree_LDADD = $(LDADD) +@@ -2994,6 +3180,17 @@ + openat__secontext_full_SOURCES = openat--secontext_full.c + openat__secontext_full_OBJECTS = openat--secontext_full.$(OBJEXT) + openat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++openat__secontext_full_mismatch_SOURCES = \ ++ openat--secontext_full_mismatch.c ++openat__secontext_full_mismatch_OBJECTS = \ ++ openat--secontext_full_mismatch.$(OBJEXT) ++openat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++openat__secontext_mismatch_SOURCES = openat--secontext_mismatch.c ++openat__secontext_mismatch_OBJECTS = \ ++ openat--secontext_mismatch.$(OBJEXT) ++openat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + openat2_SOURCES = openat2.c + openat2_OBJECTS = openat2.$(OBJEXT) + openat2_LDADD = $(LDADD) +@@ -4449,6 +4646,8 @@ + ./$(DEPDIR)/_newselect.Po ./$(DEPDIR)/accept.Po \ + ./$(DEPDIR)/accept4.Po ./$(DEPDIR)/access--secontext.Po \ + ./$(DEPDIR)/access--secontext_full.Po ./$(DEPDIR)/access.Po \ ++ ./$(DEPDIR)/access--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/access--secontext_mismatch.Po \ + ./$(DEPDIR)/acct.Po ./$(DEPDIR)/add_key.Po \ + ./$(DEPDIR)/adjtimex.Po ./$(DEPDIR)/aio.Po \ + ./$(DEPDIR)/aio_pgetevents.Po ./$(DEPDIR)/alarm.Po \ +@@ -4468,6 +4667,8 @@ + ./$(DEPDIR)/chdir.Po ./$(DEPDIR)/check_sigblock.Po \ + ./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod--secontext.Po \ + ./$(DEPDIR)/chmod--secontext_full.Po ./$(DEPDIR)/chmod.Po \ ++ ./$(DEPDIR)/chmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/chmod--secontext_mismatch.Po \ + ./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \ + ./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \ + ./$(DEPDIR)/clock_adjtime64.Po ./$(DEPDIR)/clock_nanosleep.Po \ +@@ -4503,14 +4704,22 @@ + ./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \ + ./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve--secontext.Po \ + ./$(DEPDIR)/execve--secontext_full.Po ./$(DEPDIR)/execve-v.Po \ ++ ./$(DEPDIR)/execve--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execve--secontext_mismatch.Po \ + ./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat--secontext.Po \ + ./$(DEPDIR)/execveat--secontext_full.Po \ ++ ./$(DEPDIR)/execveat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execveat--secontext_mismatch.Po \ + ./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \ + ./$(DEPDIR)/faccessat--secontext.Po \ + ./$(DEPDIR)/faccessat--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-P.Po \ + ./$(DEPDIR)/faccessat-y--secontext.Po \ + ./$(DEPDIR)/faccessat-y--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-y.Po ./$(DEPDIR)/faccessat-yy.Po \ + ./$(DEPDIR)/faccessat.Po ./$(DEPDIR)/faccessat2-P.Po \ + ./$(DEPDIR)/faccessat2-y.Po ./$(DEPDIR)/faccessat2-yy.Po \ +@@ -4519,26 +4728,38 @@ + ./$(DEPDIR)/fanotify_init.Po \ + ./$(DEPDIR)/fanotify_mark--secontext.Po \ + ./$(DEPDIR)/fanotify_mark--secontext_full.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po \ + ./$(DEPDIR)/fanotify_mark-Xabbrev.Po \ + ./$(DEPDIR)/fanotify_mark-Xraw.Po \ + ./$(DEPDIR)/fanotify_mark-Xverbose.Po \ + ./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \ + ./$(DEPDIR)/fchmod--secontext.Po \ + ./$(DEPDIR)/fchmod--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y--secontext.Po \ + ./$(DEPDIR)/fchmod-y--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y.Po ./$(DEPDIR)/fchmod.Po \ + ./$(DEPDIR)/fchmodat--secontext.Po \ + ./$(DEPDIR)/fchmodat--secontext_full.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmodat.Po ./$(DEPDIR)/fchown.Po \ + ./$(DEPDIR)/fchown32.Po ./$(DEPDIR)/fchownat--secontext.Po \ + ./$(DEPDIR)/fchownat--secontext_full.Po \ ++ ./$(DEPDIR)/fchownat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchownat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchownat.Po \ + ./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fcntl64--pidns-translation.Po \ + ./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \ + ./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle--secontext.Po \ + ./$(DEPDIR)/file_handle--secontext_full.Po \ ++ ./$(DEPDIR)/file_handle--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/file_handle--secontext_mismatch.Po \ + ./$(DEPDIR)/file_handle.Po ./$(DEPDIR)/filter-unavailable.Po \ + ./$(DEPDIR)/filter_seccomp-flag.Po \ + ./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \ +@@ -4753,6 +4972,8 @@ + ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \ + ./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat--secontext.Po \ + ./$(DEPDIR)/linkat--secontext_full.Po ./$(DEPDIR)/linkat.Po \ ++ ./$(DEPDIR)/linkat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/linkat--secontext_mismatch.Po \ + ./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \ + ./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \ + ./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \ +@@ -4867,9 +5088,13 @@ + ./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \ + ./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open--secontext.Po \ + ./$(DEPDIR)/open--secontext_full.Po ./$(DEPDIR)/open.Po \ ++ ./$(DEPDIR)/open--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/open--secontext_mismatch.Po \ + ./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \ + ./$(DEPDIR)/openat--secontext.Po \ + ./$(DEPDIR)/openat--secontext_full.Po ./$(DEPDIR)/openat.Po \ ++ ./$(DEPDIR)/openat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/openat--secontext_mismatch.Po \ + ./$(DEPDIR)/openat2-Xabbrev.Po ./$(DEPDIR)/openat2-Xraw.Po \ + ./$(DEPDIR)/openat2-Xverbose.Po \ + ./$(DEPDIR)/openat2-v-y-Xabbrev.Po \ +@@ -5119,7 +5316,8 @@ + am__v_CCLD_1 = + SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ + accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4468,7 +4666,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4484,24 +4683,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4588,6 +4803,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4641,8 +4857,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -4753,7 +4971,8 @@ + xetpriority--pidns-translation.c xettimeofday.c zeroargc.c + DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ + accept.c accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4762,7 +4981,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4778,24 +4998,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4882,6 +5118,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4935,8 +5172,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -6212,66 +6451,126 @@ + secontext_EXECUTABLES = \ + access--secontext \ + access--secontext_full \ ++ access--secontext_full_mismatch \ ++ access--secontext_mismatch \ + chmod--secontext \ + chmod--secontext_full \ ++ chmod--secontext_full_mismatch \ ++ chmod--secontext_mismatch \ + execve--secontext \ + execve--secontext_full \ ++ execve--secontext_full_mismatch \ ++ execve--secontext_mismatch \ + execveat--secontext \ + execveat--secontext_full \ ++ execveat--secontext_full_mismatch \ ++ execveat--secontext_mismatch \ + faccessat--secontext \ + faccessat--secontext_full \ ++ faccessat--secontext_full_mismatch \ ++ faccessat--secontext_mismatch \ + faccessat-y--secontext \ + faccessat-y--secontext_full \ ++ faccessat-y--secontext_full_mismatch \ ++ faccessat-y--secontext_mismatch \ + fanotify_mark--secontext \ + fanotify_mark--secontext_full \ ++ fanotify_mark--secontext_full_mismatch \ ++ fanotify_mark--secontext_mismatch \ + fchmod--secontext \ + fchmod--secontext_full \ ++ fchmod--secontext_full_mismatch \ ++ fchmod--secontext_mismatch \ + fchmod-y--secontext \ + fchmod-y--secontext_full \ ++ fchmod-y--secontext_full_mismatch \ ++ fchmod-y--secontext_mismatch \ + fchmodat--secontext \ + fchmodat--secontext_full \ ++ fchmodat--secontext_full_mismatch \ ++ fchmodat--secontext_mismatch \ + fchownat--secontext \ + fchownat--secontext_full \ ++ fchownat--secontext_full_mismatch \ ++ fchownat--secontext_mismatch \ + file_handle--secontext \ + file_handle--secontext_full \ ++ file_handle--secontext_full_mismatch \ ++ file_handle--secontext_mismatch \ + linkat--secontext \ + linkat--secontext_full \ ++ linkat--secontext_full_mismatch \ ++ linkat--secontext_mismatch \ + open--secontext \ + open--secontext_full \ ++ open--secontext_full_mismatch \ ++ open--secontext_mismatch \ + openat--secontext \ + openat--secontext_full \ ++ openat--secontext_full_mismatch \ ++ openat--secontext_mismatch \ + # + + access__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + access__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + attach_f_p_LDADD = -lpthread $(LDADD) + count_f_LDADD = -lpthread $(LDADD) + delay_LDADD = $(clock_LIBS) $(LDADD) +@@ -6325,15 +6624,20 @@ + # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. + GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ + accept4.gen.test access.gen.test access--secontext.gen.test \ +- access--secontext_full.gen.test acct.gen.test add_key.gen.test \ +- adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test \ +- alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test \ ++ access--secontext_full.gen.test \ ++ access--secontext_full_mismatch.gen.test \ ++ access--secontext_mismatch.gen.test acct.gen.test \ ++ add_key.gen.test adjtimex.gen.test aio.gen.test \ ++ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \ ++ bpf-obj_get_info_by_fd.gen.test \ + bpf-obj_get_info_by_fd-prog.gen.test \ + bpf-obj_get_info_by_fd-prog-v.gen.test \ + bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test \ + btrfs.gen.test chdir.gen.test chmod.gen.test \ + chmod--secontext.gen.test chmod--secontext_full.gen.test \ +- chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test \ ++ chmod--secontext_full_mismatch.gen.test \ ++ chmod--secontext_mismatch.gen.test chown.gen.test \ ++ chown32.gen.test chroot.gen.test clock.gen.test \ + clock_adjtime.gen.test clock_adjtime64.gen.test \ + clock_nanosleep.gen.test clock_xettime.gen.test \ + clock_xettime64.gen.test clone3.gen.test \ +@@ -6356,36 +6660,53 @@ + epoll_pwait2-P.gen.test epoll_pwait2-y.gen.test \ + epoll_wait.gen.test erestartsys.gen.test \ + execve--secontext.gen.test execve--secontext_full.gen.test \ +- execveat.gen.test execveat--secontext.gen.test \ +- execveat--secontext_full.gen.test execveat-v.gen.test \ ++ execve--secontext_full_mismatch.gen.test \ ++ execve--secontext_mismatch.gen.test execveat.gen.test \ ++ execveat--secontext.gen.test execveat--secontext_full.gen.test \ ++ execveat--secontext_full_mismatch.gen.test \ ++ execveat--secontext_mismatch.gen.test execveat-v.gen.test \ + faccessat--secontext.gen.test \ +- faccessat--secontext_full.gen.test faccessat-P.gen.test \ ++ faccessat--secontext_full.gen.test \ ++ faccessat--secontext_full_mismatch.gen.test \ ++ faccessat--secontext_mismatch.gen.test faccessat-P.gen.test \ + faccessat-y.gen.test faccessat-y--secontext.gen.test \ +- faccessat-y--secontext_full.gen.test faccessat-yy.gen.test \ ++ faccessat-y--secontext_full.gen.test \ ++ faccessat-y--secontext_full_mismatch.gen.test \ ++ faccessat-y--secontext_mismatch.gen.test faccessat-yy.gen.test \ + faccessat2-P.gen.test faccessat2-y.gen.test \ + faccessat2-yy.gen.test fadvise64_64.gen.test \ + fallocate.gen.test fanotify_init.gen.test \ + fanotify_mark.gen.test fanotify_mark--secontext.gen.test \ + fanotify_mark--secontext_full.gen.test \ ++ fanotify_mark--secontext_full_mismatch.gen.test \ ++ fanotify_mark--secontext_mismatch.gen.test \ + fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \ + fanotify_mark-Xverbose.gen.test fchdir.gen.test \ + fchmod.gen.test fchmod--secontext.gen.test \ +- fchmod--secontext_full.gen.test fchmod-y.gen.test \ ++ fchmod--secontext_full.gen.test \ ++ fchmod--secontext_full_mismatch.gen.test \ ++ fchmod--secontext_mismatch.gen.test fchmod-y.gen.test \ + fchmod-y--secontext.gen.test fchmod-y--secontext_full.gen.test \ +- fchmodat.gen.test fchmodat--secontext.gen.test \ +- fchmodat--secontext_full.gen.test fchown.gen.test \ ++ fchmod-y--secontext_full_mismatch.gen.test \ ++ fchmod-y--secontext_mismatch.gen.test fchmodat.gen.test \ ++ fchmodat--secontext.gen.test fchmodat--secontext_full.gen.test \ ++ fchmodat--secontext_full_mismatch.gen.test \ ++ fchmodat--secontext_mismatch.gen.test fchown.gen.test \ + fchown32.gen.test fchownat.gen.test \ + fchownat--secontext.gen.test fchownat--secontext_full.gen.test \ +- fcntl.gen.test fcntl--pidns-translation.gen.test \ +- fcntl64.gen.test fcntl64--pidns-translation.gen.test \ +- fdatasync.gen.test file_handle.gen.test \ +- file_handle--secontext.gen.test \ +- file_handle--secontext_full.gen.test filter_seccomp.gen.test \ +- filter_seccomp-flag.gen.test finit_module.gen.test \ +- flock.gen.test fork-f.gen.test fsconfig.gen.test \ +- fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test \ +- fspick.gen.test fspick-P.gen.test fstat.gen.test \ +- fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ ++ fchownat--secontext_full_mismatch.gen.test \ ++ fchownat--secontext_mismatch.gen.test fcntl.gen.test \ ++ fcntl--pidns-translation.gen.test fcntl64.gen.test \ ++ fcntl64--pidns-translation.gen.test fdatasync.gen.test \ ++ file_handle.gen.test file_handle--secontext.gen.test \ ++ file_handle--secontext_full.gen.test \ ++ file_handle--secontext_full_mismatch.gen.test \ ++ file_handle--secontext_mismatch.gen.test \ ++ filter_seccomp.gen.test filter_seccomp-flag.gen.test \ ++ finit_module.gen.test flock.gen.test fork-f.gen.test \ ++ fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \ ++ fsopen.gen.test fspick.gen.test fspick-P.gen.test \ ++ fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ + fstat-Xverbose.gen.test fstat64.gen.test \ + fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \ + fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \ +@@ -6512,8 +6833,10 @@ + landlock_restrict_self-y.gen.test lchown.gen.test \ + lchown32.gen.test link.gen.test linkat.gen.test \ + linkat--secontext.gen.test linkat--secontext_full.gen.test \ +- lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \ +- madvise.gen.test maybe_switch_current_tcp.gen.test \ ++ linkat--secontext_full_mismatch.gen.test \ ++ linkat--secontext_mismatch.gen.test lookup_dcookie.gen.test \ ++ lstat.gen.test lstat64.gen.test madvise.gen.test \ ++ maybe_switch_current_tcp.gen.test \ + maybe_switch_current_tcp--quiet-thread-execve.gen.test \ + mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \ + mbind-Xverbose.gen.test membarrier.gen.test \ +@@ -6582,16 +6905,19 @@ + oldselect.gen.test oldselect-P.gen.test \ + oldselect-efault.gen.test oldselect-efault-P.gen.test \ + oldstat.gen.test open.gen.test open--secontext.gen.test \ +- open--secontext_full.gen.test open_tree.gen.test \ ++ open--secontext_full.gen.test \ ++ open--secontext_full_mismatch.gen.test \ ++ open--secontext_mismatch.gen.test open_tree.gen.test \ + open_tree-P.gen.test openat.gen.test \ + openat--secontext.gen.test openat--secontext_full.gen.test \ +- openat2.gen.test openat2-Xabbrev.gen.test \ +- openat2-Xraw.gen.test openat2-Xverbose.gen.test \ +- openat2-v.gen.test openat2-v-y.gen.test \ +- openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test \ +- openat2-v-y-Xverbose.gen.test openat2-y.gen.test \ +- orphaned_process_group.gen.test osf_utimes.gen.test \ +- pause.gen.test perf_event_open.gen.test \ ++ openat--secontext_full_mismatch.gen.test \ ++ openat--secontext_mismatch.gen.test openat2.gen.test \ ++ openat2-Xabbrev.gen.test openat2-Xraw.gen.test \ ++ openat2-Xverbose.gen.test openat2-v.gen.test \ ++ openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \ ++ openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \ ++ openat2-y.gen.test orphaned_process_group.gen.test \ ++ osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \ + perf_event_open_nonverbose.gen.test \ + perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \ + personality-Xraw.gen.test personality-Xverbose.gen.test \ +@@ -7155,6 +7481,14 @@ + @rm -f access--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(access__secontext_full_OBJECTS) $(access__secontext_full_LDADD) $(LIBS) + ++access--secontext_full_mismatch$(EXEEXT): $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_LDADD) $(LIBS) ++ ++access--secontext_mismatch$(EXEEXT): $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_LDADD) $(LIBS) ++ + acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) + @rm -f acct$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS) +@@ -7283,6 +7617,14 @@ + @rm -f chmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_OBJECTS) $(chmod__secontext_full_LDADD) $(LIBS) + ++chmod--secontext_full_mismatch$(EXEEXT): $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++chmod--secontext_mismatch$(EXEEXT): $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_LDADD) $(LIBS) ++ + chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) + @rm -f chown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS) +@@ -7527,6 +7869,14 @@ + @rm -f execve--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve__secontext_full_OBJECTS) $(execve__secontext_full_LDADD) $(LIBS) + ++execve--secontext_full_mismatch$(EXEEXT): $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execve--secontext_mismatch$(EXEEXT): $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_LDADD) $(LIBS) ++ + execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) + @rm -f execve-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS) +@@ -7543,6 +7893,14 @@ + @rm -f execveat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_OBJECTS) $(execveat__secontext_full_LDADD) $(LIBS) + ++execveat--secontext_full_mismatch$(EXEEXT): $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execveat--secontext_mismatch$(EXEEXT): $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_LDADD) $(LIBS) ++ + execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) + @rm -f execveat-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS) +@@ -7559,6 +7917,14 @@ + @rm -f faccessat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_OBJECTS) $(faccessat__secontext_full_LDADD) $(LIBS) + ++faccessat--secontext_full_mismatch$(EXEEXT): $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat--secontext_mismatch$(EXEEXT): $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) + @rm -f faccessat-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS) +@@ -7575,6 +7941,14 @@ + @rm -f faccessat-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_OBJECTS) $(faccessat_y__secontext_full_LDADD) $(LIBS) + ++faccessat-y--secontext_full_mismatch$(EXEEXT): $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat-y--secontext_mismatch$(EXEEXT): $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) + @rm -f faccessat-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS) +@@ -7623,6 +7997,14 @@ + @rm -f fanotify_mark--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_OBJECTS) $(fanotify_mark__secontext_full_LDADD) $(LIBS) + ++fanotify_mark--secontext_full_mismatch$(EXEEXT): $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fanotify_mark--secontext_mismatch$(EXEEXT): $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_LDADD) $(LIBS) ++ + fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES) + @rm -f fanotify_mark-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS) +@@ -7651,6 +8033,14 @@ + @rm -f fchmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_OBJECTS) $(fchmod__secontext_full_LDADD) $(LIBS) + ++fchmod--secontext_full_mismatch$(EXEEXT): $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod--secontext_mismatch$(EXEEXT): $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_LDADD) $(LIBS) ++ + fchmod-y$(EXEEXT): $(fchmod_y_OBJECTS) $(fchmod_y_DEPENDENCIES) $(EXTRA_fchmod_y_DEPENDENCIES) + @rm -f fchmod-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y_OBJECTS) $(fchmod_y_LDADD) $(LIBS) +@@ -7663,6 +8053,14 @@ + @rm -f fchmod-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_OBJECTS) $(fchmod_y__secontext_full_LDADD) $(LIBS) + ++fchmod-y--secontext_full_mismatch$(EXEEXT): $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod-y--secontext_mismatch$(EXEEXT): $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_LDADD) $(LIBS) ++ + fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) + @rm -f fchmodat$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS) +@@ -7675,6 +8073,14 @@ + @rm -f fchmodat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_OBJECTS) $(fchmodat__secontext_full_LDADD) $(LIBS) + ++fchmodat--secontext_full_mismatch$(EXEEXT): $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmodat--secontext_mismatch$(EXEEXT): $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_LDADD) $(LIBS) ++ + fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) + @rm -f fchown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS) +@@ -7695,6 +8101,14 @@ + @rm -f fchownat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_OBJECTS) $(fchownat__secontext_full_LDADD) $(LIBS) + ++fchownat--secontext_full_mismatch$(EXEEXT): $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchownat--secontext_mismatch$(EXEEXT): $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_LDADD) $(LIBS) ++ + fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) + @rm -f fcntl$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS) +@@ -7731,6 +8145,14 @@ + @rm -f file_handle--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_OBJECTS) $(file_handle__secontext_full_LDADD) $(LIBS) + ++file_handle--secontext_full_mismatch$(EXEEXT): $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_LDADD) $(LIBS) ++ ++file_handle--secontext_mismatch$(EXEEXT): $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_LDADD) $(LIBS) ++ + filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) + @rm -f filter-unavailable$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS) +@@ -8775,6 +9197,14 @@ + @rm -f linkat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_OBJECTS) $(linkat__secontext_full_LDADD) $(LIBS) + ++linkat--secontext_full_mismatch$(EXEEXT): $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++linkat--secontext_mismatch$(EXEEXT): $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_LDADD) $(LIBS) ++ + list_sigaction_signum$(EXEEXT): $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_DEPENDENCIES) $(EXTRA_list_sigaction_signum_DEPENDENCIES) + @rm -f list_sigaction_signum$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_LDADD) $(LIBS) +@@ -9423,6 +9853,14 @@ + @rm -f open--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open__secontext_full_OBJECTS) $(open__secontext_full_LDADD) $(LIBS) + ++open--secontext_full_mismatch$(EXEEXT): $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_LDADD) $(LIBS) ++ ++open--secontext_mismatch$(EXEEXT): $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_LDADD) $(LIBS) ++ + open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) + @rm -f open_tree$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS) +@@ -9443,6 +9881,14 @@ + @rm -f openat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat__secontext_full_OBJECTS) $(openat__secontext_full_LDADD) $(LIBS) + ++openat--secontext_full_mismatch$(EXEEXT): $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++openat--secontext_mismatch$(EXEEXT): $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_LDADD) $(LIBS) ++ + openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) + @rm -f openat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS) +@@ -10835,6 +11281,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept4.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acct.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@ # am--include-marker +@@ -10867,6 +11315,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sigign.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown32.Po@am__quote@ # am--include-marker +@@ -10928,17 +11378,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventfd.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker +@@ -10952,6 +11410,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@ # am--include-marker +@@ -10959,17 +11419,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker +@@ -10979,6 +11447,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker +@@ -11276,6 +11746,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/llseek.Po@am__quote@ # am--include-marker +@@ -11438,11 +11910,15 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker +@@ -13004,6 +13480,12 @@ + $(srcdir)/access--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/access--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/access--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13055,6 +13537,12 @@ + $(srcdir)/chmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/chmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/chmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13220,6 +13708,12 @@ + $(srcdir)/execve--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execve--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execve--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13229,6 +13723,12 @@ + $(srcdir)/execveat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execveat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execveat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13238,6 +13738,12 @@ + $(srcdir)/faccessat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13250,6 +13756,12 @@ + $(srcdir)/faccessat-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13280,6 +13792,12 @@ + $(srcdir)/fanotify_mark--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fanotify_mark--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fanotify_mark--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13301,6 +13819,12 @@ + $(srcdir)/fchmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmod-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13310,6 +13834,12 @@ + $(srcdir)/fchmod-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13319,6 +13849,12 @@ + $(srcdir)/fchmodat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmodat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmodat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13334,6 +13870,12 @@ + $(srcdir)/fchownat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchownat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchownat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13358,6 +13900,12 @@ + $(srcdir)/file_handle--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/file_handle--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/file_handle--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14117,6 +14665,12 @@ + $(srcdir)/linkat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/linkat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/linkat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14546,6 +15100,12 @@ + $(srcdir)/open--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/open--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/open--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14561,6 +15121,12 @@ + $(srcdir)/openat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/openat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/openat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +--- old/tests-mx32/Makefile.in 2022-02-07 20:23:38.728063729 +0100 ++++ new/tests-mx32/Makefile.in 2022-02-07 20:24:04.572063372 +0100 +@@ -614,25 +614,55 @@ + xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \ + xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT) + am__EXEEXT_2 = access--secontext$(EXEEXT) \ +- access--secontext_full$(EXEEXT) chmod--secontext$(EXEEXT) \ +- chmod--secontext_full$(EXEEXT) execve--secontext$(EXEEXT) \ +- execve--secontext_full$(EXEEXT) execveat--secontext$(EXEEXT) \ +- execveat--secontext_full$(EXEEXT) \ ++ access--secontext_full$(EXEEXT) \ ++ access--secontext_full_mismatch$(EXEEXT) \ ++ access--secontext_mismatch$(EXEEXT) chmod--secontext$(EXEEXT) \ ++ chmod--secontext_full$(EXEEXT) \ ++ chmod--secontext_full_mismatch$(EXEEXT) \ ++ chmod--secontext_mismatch$(EXEEXT) execve--secontext$(EXEEXT) \ ++ execve--secontext_full$(EXEEXT) \ ++ execve--secontext_full_mismatch$(EXEEXT) \ ++ execve--secontext_mismatch$(EXEEXT) \ ++ execveat--secontext$(EXEEXT) execveat--secontext_full$(EXEEXT) \ ++ execveat--secontext_full_mismatch$(EXEEXT) \ ++ execveat--secontext_mismatch$(EXEEXT) \ + faccessat--secontext$(EXEEXT) \ + faccessat--secontext_full$(EXEEXT) \ ++ faccessat--secontext_full_mismatch$(EXEEXT) \ ++ faccessat--secontext_mismatch$(EXEEXT) \ + faccessat-y--secontext$(EXEEXT) \ + faccessat-y--secontext_full$(EXEEXT) \ ++ faccessat-y--secontext_full_mismatch$(EXEEXT) \ ++ faccessat-y--secontext_mismatch$(EXEEXT) \ + fanotify_mark--secontext$(EXEEXT) \ + fanotify_mark--secontext_full$(EXEEXT) \ ++ fanotify_mark--secontext_full_mismatch$(EXEEXT) \ ++ fanotify_mark--secontext_mismatch$(EXEEXT) \ + fchmod--secontext$(EXEEXT) fchmod--secontext_full$(EXEEXT) \ ++ fchmod--secontext_full_mismatch$(EXEEXT) \ ++ fchmod--secontext_mismatch$(EXEEXT) \ + fchmod-y--secontext$(EXEEXT) fchmod-y--secontext_full$(EXEEXT) \ ++ fchmod-y--secontext_full_mismatch$(EXEEXT) \ ++ fchmod-y--secontext_mismatch$(EXEEXT) \ + fchmodat--secontext$(EXEEXT) fchmodat--secontext_full$(EXEEXT) \ ++ fchmodat--secontext_full_mismatch$(EXEEXT) \ ++ fchmodat--secontext_mismatch$(EXEEXT) \ + fchownat--secontext$(EXEEXT) fchownat--secontext_full$(EXEEXT) \ ++ fchownat--secontext_full_mismatch$(EXEEXT) \ ++ fchownat--secontext_mismatch$(EXEEXT) \ + file_handle--secontext$(EXEEXT) \ + file_handle--secontext_full$(EXEEXT) \ ++ file_handle--secontext_full_mismatch$(EXEEXT) \ ++ file_handle--secontext_mismatch$(EXEEXT) \ + linkat--secontext$(EXEEXT) linkat--secontext_full$(EXEEXT) \ +- open--secontext$(EXEEXT) open--secontext_full$(EXEEXT) \ +- openat--secontext$(EXEEXT) openat--secontext_full$(EXEEXT) ++ linkat--secontext_full_mismatch$(EXEEXT) \ ++ linkat--secontext_mismatch$(EXEEXT) open--secontext$(EXEEXT) \ ++ open--secontext_full$(EXEEXT) \ ++ open--secontext_full_mismatch$(EXEEXT) \ ++ open--secontext_mismatch$(EXEEXT) openat--secontext$(EXEEXT) \ ++ openat--secontext_full$(EXEEXT) \ ++ openat--secontext_full_mismatch$(EXEEXT) \ ++ openat--secontext_mismatch$(EXEEXT) + ARFLAGS = cru + AM_V_AR = $(am__v_AR_@AM_V@) + am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +@@ -662,6 +692,17 @@ + access__secontext_full_SOURCES = access--secontext_full.c + access__secontext_full_OBJECTS = access--secontext_full.$(OBJEXT) + access__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++access__secontext_full_mismatch_SOURCES = \ ++ access--secontext_full_mismatch.c ++access__secontext_full_mismatch_OBJECTS = \ ++ access--secontext_full_mismatch.$(OBJEXT) ++access__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++access__secontext_mismatch_SOURCES = access--secontext_mismatch.c ++access__secontext_mismatch_OBJECTS = \ ++ access--secontext_mismatch.$(OBJEXT) ++access__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + acct_SOURCES = acct.c + acct_OBJECTS = acct.$(OBJEXT) + acct_LDADD = $(LDADD) +@@ -790,6 +831,17 @@ + chmod__secontext_full_SOURCES = chmod--secontext_full.c + chmod__secontext_full_OBJECTS = chmod--secontext_full.$(OBJEXT) + chmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++chmod__secontext_full_mismatch_SOURCES = \ ++ chmod--secontext_full_mismatch.c ++chmod__secontext_full_mismatch_OBJECTS = \ ++ chmod--secontext_full_mismatch.$(OBJEXT) ++chmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++chmod__secontext_mismatch_SOURCES = chmod--secontext_mismatch.c ++chmod__secontext_mismatch_OBJECTS = \ ++ chmod--secontext_mismatch.$(OBJEXT) ++chmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + chown_SOURCES = chown.c + chown_OBJECTS = chown.$(OBJEXT) + chown_LDADD = $(LDADD) +@@ -1031,6 +1083,17 @@ + execve__secontext_full_SOURCES = execve--secontext_full.c + execve__secontext_full_OBJECTS = execve--secontext_full.$(OBJEXT) + execve__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execve__secontext_full_mismatch_SOURCES = \ ++ execve--secontext_full_mismatch.c ++execve__secontext_full_mismatch_OBJECTS = \ ++ execve--secontext_full_mismatch.$(OBJEXT) ++execve__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execve__secontext_mismatch_SOURCES = execve--secontext_mismatch.c ++execve__secontext_mismatch_OBJECTS = \ ++ execve--secontext_mismatch.$(OBJEXT) ++execve__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execve_v_SOURCES = execve-v.c + execve_v_OBJECTS = execve-v.$(OBJEXT) + execve_v_LDADD = $(LDADD) +@@ -1045,6 +1108,17 @@ + execveat__secontext_full_SOURCES = execveat--secontext_full.c + execveat__secontext_full_OBJECTS = execveat--secontext_full.$(OBJEXT) + execveat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++execveat__secontext_full_mismatch_SOURCES = \ ++ execveat--secontext_full_mismatch.c ++execveat__secontext_full_mismatch_OBJECTS = \ ++ execveat--secontext_full_mismatch.$(OBJEXT) ++execveat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++execveat__secontext_mismatch_SOURCES = execveat--secontext_mismatch.c ++execveat__secontext_mismatch_OBJECTS = \ ++ execveat--secontext_mismatch.$(OBJEXT) ++execveat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + execveat_v_SOURCES = execveat-v.c + execveat_v_OBJECTS = execveat-v.$(OBJEXT) + execveat_v_LDADD = $(LDADD) +@@ -1061,6 +1135,18 @@ + faccessat--secontext_full.$(OBJEXT) + faccessat__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat__secontext_full_mismatch_SOURCES = \ ++ faccessat--secontext_full_mismatch.c ++faccessat__secontext_full_mismatch_OBJECTS = \ ++ faccessat--secontext_full_mismatch.$(OBJEXT) ++faccessat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat__secontext_mismatch_SOURCES = \ ++ faccessat--secontext_mismatch.c ++faccessat__secontext_mismatch_OBJECTS = \ ++ faccessat--secontext_mismatch.$(OBJEXT) ++faccessat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_P_SOURCES = faccessat-P.c + faccessat_P_OBJECTS = faccessat-P.$(OBJEXT) + faccessat_P_LDADD = $(LDADD) +@@ -1077,6 +1163,18 @@ + faccessat-y--secontext_full.$(OBJEXT) + faccessat_y__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++faccessat_y__secontext_full_mismatch_SOURCES = \ ++ faccessat-y--secontext_full_mismatch.c ++faccessat_y__secontext_full_mismatch_OBJECTS = \ ++ faccessat-y--secontext_full_mismatch.$(OBJEXT) ++faccessat_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++faccessat_y__secontext_mismatch_SOURCES = \ ++ faccessat-y--secontext_mismatch.c ++faccessat_y__secontext_mismatch_OBJECTS = \ ++ faccessat-y--secontext_mismatch.$(OBJEXT) ++faccessat_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + faccessat_yy_SOURCES = faccessat-yy.c + faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT) + faccessat_yy_LDADD = $(LDADD) +@@ -1126,6 +1224,18 @@ + fanotify_mark--secontext_full.$(OBJEXT) + fanotify_mark__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_full_mismatch_SOURCES = \ ++ fanotify_mark--secontext_full_mismatch.c ++fanotify_mark__secontext_full_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_full_mismatch.$(OBJEXT) ++fanotify_mark__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fanotify_mark__secontext_mismatch_SOURCES = \ ++ fanotify_mark--secontext_mismatch.c ++fanotify_mark__secontext_mismatch_OBJECTS = \ ++ fanotify_mark--secontext_mismatch.$(OBJEXT) ++fanotify_mark__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c + fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT) + fanotify_mark_Xabbrev_LDADD = $(LDADD) +@@ -1152,6 +1262,17 @@ + fchmod__secontext_full_SOURCES = fchmod--secontext_full.c + fchmod__secontext_full_OBJECTS = fchmod--secontext_full.$(OBJEXT) + fchmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod__secontext_full_mismatch_SOURCES = \ ++ fchmod--secontext_full_mismatch.c ++fchmod__secontext_full_mismatch_OBJECTS = \ ++ fchmod--secontext_full_mismatch.$(OBJEXT) ++fchmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod__secontext_mismatch_SOURCES = fchmod--secontext_mismatch.c ++fchmod__secontext_mismatch_OBJECTS = \ ++ fchmod--secontext_mismatch.$(OBJEXT) ++fchmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmod_y_SOURCES = fchmod-y.c + fchmod_y_OBJECTS = fchmod-y.$(OBJEXT) + fchmod_y_LDADD = $(LDADD) +@@ -1162,6 +1283,17 @@ + fchmod_y__secontext_full_SOURCES = fchmod-y--secontext_full.c + fchmod_y__secontext_full_OBJECTS = fchmod-y--secontext_full.$(OBJEXT) + fchmod_y__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmod_y__secontext_full_mismatch_SOURCES = \ ++ fchmod-y--secontext_full_mismatch.c ++fchmod_y__secontext_full_mismatch_OBJECTS = \ ++ fchmod-y--secontext_full_mismatch.$(OBJEXT) ++fchmod_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmod_y__secontext_mismatch_SOURCES = fchmod-y--secontext_mismatch.c ++fchmod_y__secontext_mismatch_OBJECTS = \ ++ fchmod-y--secontext_mismatch.$(OBJEXT) ++fchmod_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchmodat_SOURCES = fchmodat.c + fchmodat_OBJECTS = fchmodat.$(OBJEXT) + fchmodat_LDADD = $(LDADD) +@@ -1172,6 +1304,17 @@ + fchmodat__secontext_full_SOURCES = fchmodat--secontext_full.c + fchmodat__secontext_full_OBJECTS = fchmodat--secontext_full.$(OBJEXT) + fchmodat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchmodat__secontext_full_mismatch_SOURCES = \ ++ fchmodat--secontext_full_mismatch.c ++fchmodat__secontext_full_mismatch_OBJECTS = \ ++ fchmodat--secontext_full_mismatch.$(OBJEXT) ++fchmodat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchmodat__secontext_mismatch_SOURCES = fchmodat--secontext_mismatch.c ++fchmodat__secontext_mismatch_OBJECTS = \ ++ fchmodat--secontext_mismatch.$(OBJEXT) ++fchmodat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fchown_SOURCES = fchown.c + fchown_OBJECTS = fchown.$(OBJEXT) + fchown_LDADD = $(LDADD) +@@ -1190,6 +1333,17 @@ + fchownat__secontext_full_SOURCES = fchownat--secontext_full.c + fchownat__secontext_full_OBJECTS = fchownat--secontext_full.$(OBJEXT) + fchownat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++fchownat__secontext_full_mismatch_SOURCES = \ ++ fchownat--secontext_full_mismatch.c ++fchownat__secontext_full_mismatch_OBJECTS = \ ++ fchownat--secontext_full_mismatch.$(OBJEXT) ++fchownat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++fchownat__secontext_mismatch_SOURCES = fchownat--secontext_mismatch.c ++fchownat__secontext_mismatch_OBJECTS = \ ++ fchownat--secontext_mismatch.$(OBJEXT) ++fchownat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + fcntl_SOURCES = fcntl.c + fcntl_OBJECTS = fcntl.$(OBJEXT) + fcntl_LDADD = $(LDADD) +@@ -1227,6 +1381,18 @@ + file_handle--secontext_full.$(OBJEXT) + file_handle__secontext_full_DEPENDENCIES = $(LDADD) \ + $(am__DEPENDENCIES_2) ++file_handle__secontext_full_mismatch_SOURCES = \ ++ file_handle--secontext_full_mismatch.c ++file_handle__secontext_full_mismatch_OBJECTS = \ ++ file_handle--secontext_full_mismatch.$(OBJEXT) ++file_handle__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++file_handle__secontext_mismatch_SOURCES = \ ++ file_handle--secontext_mismatch.c ++file_handle__secontext_mismatch_OBJECTS = \ ++ file_handle--secontext_mismatch.$(OBJEXT) ++file_handle__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + filter_unavailable_SOURCES = filter-unavailable.c + filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT) + filter_unavailable_DEPENDENCIES = $(LDADD) +@@ -2318,6 +2484,17 @@ + linkat__secontext_full_SOURCES = linkat--secontext_full.c + linkat__secontext_full_OBJECTS = linkat--secontext_full.$(OBJEXT) + linkat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++linkat__secontext_full_mismatch_SOURCES = \ ++ linkat--secontext_full_mismatch.c ++linkat__secontext_full_mismatch_OBJECTS = \ ++ linkat--secontext_full_mismatch.$(OBJEXT) ++linkat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++linkat__secontext_mismatch_SOURCES = linkat--secontext_mismatch.c ++linkat__secontext_mismatch_OBJECTS = \ ++ linkat--secontext_mismatch.$(OBJEXT) ++linkat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + list_sigaction_signum_SOURCES = list_sigaction_signum.c + list_sigaction_signum_OBJECTS = list_sigaction_signum.$(OBJEXT) + list_sigaction_signum_LDADD = $(LDADD) +@@ -2976,6 +3153,15 @@ + open__secontext_full_SOURCES = open--secontext_full.c + open__secontext_full_OBJECTS = open--secontext_full.$(OBJEXT) + open__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++open__secontext_full_mismatch_SOURCES = \ ++ open--secontext_full_mismatch.c ++open__secontext_full_mismatch_OBJECTS = \ ++ open--secontext_full_mismatch.$(OBJEXT) ++open__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++open__secontext_mismatch_SOURCES = open--secontext_mismatch.c ++open__secontext_mismatch_OBJECTS = open--secontext_mismatch.$(OBJEXT) ++open__secontext_mismatch_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) + open_tree_SOURCES = open_tree.c + open_tree_OBJECTS = open_tree.$(OBJEXT) + open_tree_LDADD = $(LDADD) +@@ -2994,6 +3180,17 @@ + openat__secontext_full_SOURCES = openat--secontext_full.c + openat__secontext_full_OBJECTS = openat--secontext_full.$(OBJEXT) + openat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2) ++openat__secontext_full_mismatch_SOURCES = \ ++ openat--secontext_full_mismatch.c ++openat__secontext_full_mismatch_OBJECTS = \ ++ openat--secontext_full_mismatch.$(OBJEXT) ++openat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) ++openat__secontext_mismatch_SOURCES = openat--secontext_mismatch.c ++openat__secontext_mismatch_OBJECTS = \ ++ openat--secontext_mismatch.$(OBJEXT) ++openat__secontext_mismatch_DEPENDENCIES = $(LDADD) \ ++ $(am__DEPENDENCIES_2) + openat2_SOURCES = openat2.c + openat2_OBJECTS = openat2.$(OBJEXT) + openat2_LDADD = $(LDADD) +@@ -4449,6 +4646,8 @@ + ./$(DEPDIR)/_newselect.Po ./$(DEPDIR)/accept.Po \ + ./$(DEPDIR)/accept4.Po ./$(DEPDIR)/access--secontext.Po \ + ./$(DEPDIR)/access--secontext_full.Po ./$(DEPDIR)/access.Po \ ++ ./$(DEPDIR)/access--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/access--secontext_mismatch.Po \ + ./$(DEPDIR)/acct.Po ./$(DEPDIR)/add_key.Po \ + ./$(DEPDIR)/adjtimex.Po ./$(DEPDIR)/aio.Po \ + ./$(DEPDIR)/aio_pgetevents.Po ./$(DEPDIR)/alarm.Po \ +@@ -4468,6 +4667,8 @@ + ./$(DEPDIR)/chdir.Po ./$(DEPDIR)/check_sigblock.Po \ + ./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod--secontext.Po \ + ./$(DEPDIR)/chmod--secontext_full.Po ./$(DEPDIR)/chmod.Po \ ++ ./$(DEPDIR)/chmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/chmod--secontext_mismatch.Po \ + ./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \ + ./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \ + ./$(DEPDIR)/clock_adjtime64.Po ./$(DEPDIR)/clock_nanosleep.Po \ +@@ -4503,14 +4704,22 @@ + ./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \ + ./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve--secontext.Po \ + ./$(DEPDIR)/execve--secontext_full.Po ./$(DEPDIR)/execve-v.Po \ ++ ./$(DEPDIR)/execve--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execve--secontext_mismatch.Po \ + ./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat--secontext.Po \ + ./$(DEPDIR)/execveat--secontext_full.Po \ ++ ./$(DEPDIR)/execveat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/execveat--secontext_mismatch.Po \ + ./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \ + ./$(DEPDIR)/faccessat--secontext.Po \ + ./$(DEPDIR)/faccessat--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-P.Po \ + ./$(DEPDIR)/faccessat-y--secontext.Po \ + ./$(DEPDIR)/faccessat-y--secontext_full.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/faccessat-y--secontext_mismatch.Po \ + ./$(DEPDIR)/faccessat-y.Po ./$(DEPDIR)/faccessat-yy.Po \ + ./$(DEPDIR)/faccessat.Po ./$(DEPDIR)/faccessat2-P.Po \ + ./$(DEPDIR)/faccessat2-y.Po ./$(DEPDIR)/faccessat2-yy.Po \ +@@ -4519,26 +4728,38 @@ + ./$(DEPDIR)/fanotify_init.Po \ + ./$(DEPDIR)/fanotify_mark--secontext.Po \ + ./$(DEPDIR)/fanotify_mark--secontext_full.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po \ + ./$(DEPDIR)/fanotify_mark-Xabbrev.Po \ + ./$(DEPDIR)/fanotify_mark-Xraw.Po \ + ./$(DEPDIR)/fanotify_mark-Xverbose.Po \ + ./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \ + ./$(DEPDIR)/fchmod--secontext.Po \ + ./$(DEPDIR)/fchmod--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y--secontext.Po \ + ./$(DEPDIR)/fchmod-y--secontext_full.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmod-y--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmod-y.Po ./$(DEPDIR)/fchmod.Po \ + ./$(DEPDIR)/fchmodat--secontext.Po \ + ./$(DEPDIR)/fchmodat--secontext_full.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchmodat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchmodat.Po ./$(DEPDIR)/fchown.Po \ + ./$(DEPDIR)/fchown32.Po ./$(DEPDIR)/fchownat--secontext.Po \ + ./$(DEPDIR)/fchownat--secontext_full.Po \ ++ ./$(DEPDIR)/fchownat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/fchownat--secontext_mismatch.Po \ + ./$(DEPDIR)/fchownat.Po \ + ./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fcntl64--pidns-translation.Po \ + ./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \ + ./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle--secontext.Po \ + ./$(DEPDIR)/file_handle--secontext_full.Po \ ++ ./$(DEPDIR)/file_handle--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/file_handle--secontext_mismatch.Po \ + ./$(DEPDIR)/file_handle.Po ./$(DEPDIR)/filter-unavailable.Po \ + ./$(DEPDIR)/filter_seccomp-flag.Po \ + ./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \ +@@ -4753,6 +4972,8 @@ + ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \ + ./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat--secontext.Po \ + ./$(DEPDIR)/linkat--secontext_full.Po ./$(DEPDIR)/linkat.Po \ ++ ./$(DEPDIR)/linkat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/linkat--secontext_mismatch.Po \ + ./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \ + ./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \ + ./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \ +@@ -4867,9 +5088,13 @@ + ./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \ + ./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open--secontext.Po \ + ./$(DEPDIR)/open--secontext_full.Po ./$(DEPDIR)/open.Po \ ++ ./$(DEPDIR)/open--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/open--secontext_mismatch.Po \ + ./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \ + ./$(DEPDIR)/openat--secontext.Po \ + ./$(DEPDIR)/openat--secontext_full.Po ./$(DEPDIR)/openat.Po \ ++ ./$(DEPDIR)/openat--secontext_full_mismatch.Po \ ++ ./$(DEPDIR)/openat--secontext_mismatch.Po \ + ./$(DEPDIR)/openat2-Xabbrev.Po ./$(DEPDIR)/openat2-Xraw.Po \ + ./$(DEPDIR)/openat2-Xverbose.Po \ + ./$(DEPDIR)/openat2-v-y-Xabbrev.Po \ +@@ -5119,7 +5316,8 @@ + am__v_CCLD_1 = + SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ + accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4468,7 +4666,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4484,24 +4683,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4588,6 +4803,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4641,8 +4857,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -4753,7 +4971,8 @@ + xetpriority--pidns-translation.c xettimeofday.c zeroargc.c + DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ + accept.c accept4.c access.c access--secontext.c \ +- access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \ ++ access--secontext_full.c access--secontext_full_mismatch.c \ ++ access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \ + aio_pgetevents.c alarm.c answer.c attach-f-p.c \ + attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ +@@ -4762,7 +4981,8 @@ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \ + check_sigign.c chmod.c chmod--secontext.c \ +- chmod--secontext_full.c chown.c chown32.c chroot.c \ ++ chmod--secontext_full.c chmod--secontext_full_mismatch.c \ ++ chmod--secontext_mismatch.c chown.c chown32.c chroot.c \ + clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \ + clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \ + clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \ +@@ -4778,24 +4998,40 @@ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \ + epoll_wait.c erestartsys.c eventfd.c execve.c \ +- execve--secontext.c execve--secontext_full.c execve-v.c \ +- execveat.c execveat--secontext.c execveat--secontext_full.c \ +- execveat-v.c faccessat.c faccessat--secontext.c \ +- faccessat--secontext_full.c faccessat-P.c faccessat-y.c \ ++ execve--secontext.c execve--secontext_full.c \ ++ execve--secontext_full_mismatch.c execve--secontext_mismatch.c \ ++ execve-v.c execveat.c execveat--secontext.c \ ++ execveat--secontext_full.c execveat--secontext_full_mismatch.c \ ++ execveat--secontext_mismatch.c execveat-v.c faccessat.c \ ++ faccessat--secontext.c faccessat--secontext_full.c \ ++ faccessat--secontext_full_mismatch.c \ ++ faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \ + faccessat-y--secontext.c faccessat-y--secontext_full.c \ +- faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \ +- faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \ +- fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \ +- fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \ ++ faccessat-y--secontext_full_mismatch.c \ ++ faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \ ++ faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \ ++ fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \ ++ fanotify_mark--secontext.c fanotify_mark--secontext_full.c \ ++ fanotify_mark--secontext_full_mismatch.c \ ++ fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \ + fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \ + fchmod.c fchmod--secontext.c fchmod--secontext_full.c \ ++ fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \ + fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \ +- fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \ +- fchown.c fchown32.c fchownat.c fchownat--secontext.c \ +- fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \ +- fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ ++ fchmod-y--secontext_full_mismatch.c \ ++ fchmod-y--secontext_mismatch.c fchmodat.c \ ++ fchmodat--secontext.c fchmodat--secontext_full.c \ ++ fchmodat--secontext_full_mismatch.c \ ++ fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \ ++ fchownat--secontext.c fchownat--secontext_full.c \ ++ fchownat--secontext_full_mismatch.c \ ++ fchownat--secontext_mismatch.c fcntl.c \ ++ fcntl--pidns-translation.c fcntl64.c \ ++ fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_handle--secontext.c \ +- file_handle--secontext_full.c filter-unavailable.c \ ++ file_handle--secontext_full.c \ ++ file_handle--secontext_full_mismatch.c \ ++ file_handle--secontext_mismatch.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ +@@ -4882,6 +5118,7 @@ + landlock_create_ruleset-y.c landlock_restrict_self.c \ + landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \ + linkat--secontext.c linkat--secontext_full.c \ ++ linkat--secontext_full_mismatch.c linkat--secontext_mismatch.c \ + list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \ + looping_threads.c lseek.c lstat.c lstat64.c madvise.c \ + maybe_switch_current_tcp.c \ +@@ -4935,8 +5172,10 @@ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open--secontext.c open--secontext_full.c \ ++ open--secontext_full_mismatch.c open--secontext_mismatch.c \ + open_tree.c open_tree-P.c openat.c openat--secontext.c \ +- openat--secontext_full.c openat2.c openat2-Xabbrev.c \ ++ openat--secontext_full.c openat--secontext_full_mismatch.c \ ++ openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \ + openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \ + openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \ + openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \ +@@ -6212,66 +6451,126 @@ + secontext_EXECUTABLES = \ + access--secontext \ + access--secontext_full \ ++ access--secontext_full_mismatch \ ++ access--secontext_mismatch \ + chmod--secontext \ + chmod--secontext_full \ ++ chmod--secontext_full_mismatch \ ++ chmod--secontext_mismatch \ + execve--secontext \ + execve--secontext_full \ ++ execve--secontext_full_mismatch \ ++ execve--secontext_mismatch \ + execveat--secontext \ + execveat--secontext_full \ ++ execveat--secontext_full_mismatch \ ++ execveat--secontext_mismatch \ + faccessat--secontext \ + faccessat--secontext_full \ ++ faccessat--secontext_full_mismatch \ ++ faccessat--secontext_mismatch \ + faccessat-y--secontext \ + faccessat-y--secontext_full \ ++ faccessat-y--secontext_full_mismatch \ ++ faccessat-y--secontext_mismatch \ + fanotify_mark--secontext \ + fanotify_mark--secontext_full \ ++ fanotify_mark--secontext_full_mismatch \ ++ fanotify_mark--secontext_mismatch \ + fchmod--secontext \ + fchmod--secontext_full \ ++ fchmod--secontext_full_mismatch \ ++ fchmod--secontext_mismatch \ + fchmod-y--secontext \ + fchmod-y--secontext_full \ ++ fchmod-y--secontext_full_mismatch \ ++ fchmod-y--secontext_mismatch \ + fchmodat--secontext \ + fchmodat--secontext_full \ ++ fchmodat--secontext_full_mismatch \ ++ fchmodat--secontext_mismatch \ + fchownat--secontext \ + fchownat--secontext_full \ ++ fchownat--secontext_full_mismatch \ ++ fchownat--secontext_mismatch \ + file_handle--secontext \ + file_handle--secontext_full \ ++ file_handle--secontext_full_mismatch \ ++ file_handle--secontext_mismatch \ + linkat--secontext \ + linkat--secontext_full \ ++ linkat--secontext_full_mismatch \ ++ linkat--secontext_mismatch \ + open--secontext \ + open--secontext_full \ ++ open--secontext_full_mismatch \ ++ open--secontext_mismatch \ + openat--secontext \ + openat--secontext_full \ ++ openat--secontext_full_mismatch \ ++ openat--secontext_mismatch \ + # + + access__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + access__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++access__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + chmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++chmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execve__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execve__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + execveat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++execveat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + faccessat_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++faccessat_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fanotify_mark__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fanotify_mark__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmod_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmod_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchmodat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchmodat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + fchownat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++fchownat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + file_handle__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++file_handle__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + linkat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++linkat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + open__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++open__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_LDADD = $(LDADD) $(libselinux_LDADD) + openat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) ++openat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD) + attach_f_p_LDADD = -lpthread $(LDADD) + count_f_LDADD = -lpthread $(LDADD) + delay_LDADD = $(clock_LIBS) $(LDADD) +@@ -6325,15 +6624,20 @@ + # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. + GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ + accept4.gen.test access.gen.test access--secontext.gen.test \ +- access--secontext_full.gen.test acct.gen.test add_key.gen.test \ +- adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test \ +- alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test \ ++ access--secontext_full.gen.test \ ++ access--secontext_full_mismatch.gen.test \ ++ access--secontext_mismatch.gen.test acct.gen.test \ ++ add_key.gen.test adjtimex.gen.test aio.gen.test \ ++ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \ ++ bpf-obj_get_info_by_fd.gen.test \ + bpf-obj_get_info_by_fd-prog.gen.test \ + bpf-obj_get_info_by_fd-prog-v.gen.test \ + bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test \ + btrfs.gen.test chdir.gen.test chmod.gen.test \ + chmod--secontext.gen.test chmod--secontext_full.gen.test \ +- chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test \ ++ chmod--secontext_full_mismatch.gen.test \ ++ chmod--secontext_mismatch.gen.test chown.gen.test \ ++ chown32.gen.test chroot.gen.test clock.gen.test \ + clock_adjtime.gen.test clock_adjtime64.gen.test \ + clock_nanosleep.gen.test clock_xettime.gen.test \ + clock_xettime64.gen.test clone3.gen.test \ +@@ -6356,36 +6660,53 @@ + epoll_pwait2-P.gen.test epoll_pwait2-y.gen.test \ + epoll_wait.gen.test erestartsys.gen.test \ + execve--secontext.gen.test execve--secontext_full.gen.test \ +- execveat.gen.test execveat--secontext.gen.test \ +- execveat--secontext_full.gen.test execveat-v.gen.test \ ++ execve--secontext_full_mismatch.gen.test \ ++ execve--secontext_mismatch.gen.test execveat.gen.test \ ++ execveat--secontext.gen.test execveat--secontext_full.gen.test \ ++ execveat--secontext_full_mismatch.gen.test \ ++ execveat--secontext_mismatch.gen.test execveat-v.gen.test \ + faccessat--secontext.gen.test \ +- faccessat--secontext_full.gen.test faccessat-P.gen.test \ ++ faccessat--secontext_full.gen.test \ ++ faccessat--secontext_full_mismatch.gen.test \ ++ faccessat--secontext_mismatch.gen.test faccessat-P.gen.test \ + faccessat-y.gen.test faccessat-y--secontext.gen.test \ +- faccessat-y--secontext_full.gen.test faccessat-yy.gen.test \ ++ faccessat-y--secontext_full.gen.test \ ++ faccessat-y--secontext_full_mismatch.gen.test \ ++ faccessat-y--secontext_mismatch.gen.test faccessat-yy.gen.test \ + faccessat2-P.gen.test faccessat2-y.gen.test \ + faccessat2-yy.gen.test fadvise64_64.gen.test \ + fallocate.gen.test fanotify_init.gen.test \ + fanotify_mark.gen.test fanotify_mark--secontext.gen.test \ + fanotify_mark--secontext_full.gen.test \ ++ fanotify_mark--secontext_full_mismatch.gen.test \ ++ fanotify_mark--secontext_mismatch.gen.test \ + fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \ + fanotify_mark-Xverbose.gen.test fchdir.gen.test \ + fchmod.gen.test fchmod--secontext.gen.test \ +- fchmod--secontext_full.gen.test fchmod-y.gen.test \ ++ fchmod--secontext_full.gen.test \ ++ fchmod--secontext_full_mismatch.gen.test \ ++ fchmod--secontext_mismatch.gen.test fchmod-y.gen.test \ + fchmod-y--secontext.gen.test fchmod-y--secontext_full.gen.test \ +- fchmodat.gen.test fchmodat--secontext.gen.test \ +- fchmodat--secontext_full.gen.test fchown.gen.test \ ++ fchmod-y--secontext_full_mismatch.gen.test \ ++ fchmod-y--secontext_mismatch.gen.test fchmodat.gen.test \ ++ fchmodat--secontext.gen.test fchmodat--secontext_full.gen.test \ ++ fchmodat--secontext_full_mismatch.gen.test \ ++ fchmodat--secontext_mismatch.gen.test fchown.gen.test \ + fchown32.gen.test fchownat.gen.test \ + fchownat--secontext.gen.test fchownat--secontext_full.gen.test \ +- fcntl.gen.test fcntl--pidns-translation.gen.test \ +- fcntl64.gen.test fcntl64--pidns-translation.gen.test \ +- fdatasync.gen.test file_handle.gen.test \ +- file_handle--secontext.gen.test \ +- file_handle--secontext_full.gen.test filter_seccomp.gen.test \ +- filter_seccomp-flag.gen.test finit_module.gen.test \ +- flock.gen.test fork-f.gen.test fsconfig.gen.test \ +- fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test \ +- fspick.gen.test fspick-P.gen.test fstat.gen.test \ +- fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ ++ fchownat--secontext_full_mismatch.gen.test \ ++ fchownat--secontext_mismatch.gen.test fcntl.gen.test \ ++ fcntl--pidns-translation.gen.test fcntl64.gen.test \ ++ fcntl64--pidns-translation.gen.test fdatasync.gen.test \ ++ file_handle.gen.test file_handle--secontext.gen.test \ ++ file_handle--secontext_full.gen.test \ ++ file_handle--secontext_full_mismatch.gen.test \ ++ file_handle--secontext_mismatch.gen.test \ ++ filter_seccomp.gen.test filter_seccomp-flag.gen.test \ ++ finit_module.gen.test flock.gen.test fork-f.gen.test \ ++ fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \ ++ fsopen.gen.test fspick.gen.test fspick-P.gen.test \ ++ fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ + fstat-Xverbose.gen.test fstat64.gen.test \ + fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \ + fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \ +@@ -6512,8 +6833,10 @@ + landlock_restrict_self-y.gen.test lchown.gen.test \ + lchown32.gen.test link.gen.test linkat.gen.test \ + linkat--secontext.gen.test linkat--secontext_full.gen.test \ +- lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \ +- madvise.gen.test maybe_switch_current_tcp.gen.test \ ++ linkat--secontext_full_mismatch.gen.test \ ++ linkat--secontext_mismatch.gen.test lookup_dcookie.gen.test \ ++ lstat.gen.test lstat64.gen.test madvise.gen.test \ ++ maybe_switch_current_tcp.gen.test \ + maybe_switch_current_tcp--quiet-thread-execve.gen.test \ + mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \ + mbind-Xverbose.gen.test membarrier.gen.test \ +@@ -6582,16 +6905,19 @@ + oldselect.gen.test oldselect-P.gen.test \ + oldselect-efault.gen.test oldselect-efault-P.gen.test \ + oldstat.gen.test open.gen.test open--secontext.gen.test \ +- open--secontext_full.gen.test open_tree.gen.test \ ++ open--secontext_full.gen.test \ ++ open--secontext_full_mismatch.gen.test \ ++ open--secontext_mismatch.gen.test open_tree.gen.test \ + open_tree-P.gen.test openat.gen.test \ + openat--secontext.gen.test openat--secontext_full.gen.test \ +- openat2.gen.test openat2-Xabbrev.gen.test \ +- openat2-Xraw.gen.test openat2-Xverbose.gen.test \ +- openat2-v.gen.test openat2-v-y.gen.test \ +- openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test \ +- openat2-v-y-Xverbose.gen.test openat2-y.gen.test \ +- orphaned_process_group.gen.test osf_utimes.gen.test \ +- pause.gen.test perf_event_open.gen.test \ ++ openat--secontext_full_mismatch.gen.test \ ++ openat--secontext_mismatch.gen.test openat2.gen.test \ ++ openat2-Xabbrev.gen.test openat2-Xraw.gen.test \ ++ openat2-Xverbose.gen.test openat2-v.gen.test \ ++ openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \ ++ openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \ ++ openat2-y.gen.test orphaned_process_group.gen.test \ ++ osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \ + perf_event_open_nonverbose.gen.test \ + perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \ + personality-Xraw.gen.test personality-Xverbose.gen.test \ +@@ -7155,6 +7481,14 @@ + @rm -f access--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(access__secontext_full_OBJECTS) $(access__secontext_full_LDADD) $(LIBS) + ++access--secontext_full_mismatch$(EXEEXT): $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_LDADD) $(LIBS) ++ ++access--secontext_mismatch$(EXEEXT): $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_mismatch_DEPENDENCIES) ++ @rm -f access--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_LDADD) $(LIBS) ++ + acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) + @rm -f acct$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS) +@@ -7283,6 +7617,14 @@ + @rm -f chmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_OBJECTS) $(chmod__secontext_full_LDADD) $(LIBS) + ++chmod--secontext_full_mismatch$(EXEEXT): $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++chmod--secontext_mismatch$(EXEEXT): $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f chmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_LDADD) $(LIBS) ++ + chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) + @rm -f chown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS) +@@ -7527,6 +7869,14 @@ + @rm -f execve--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve__secontext_full_OBJECTS) $(execve__secontext_full_LDADD) $(LIBS) + ++execve--secontext_full_mismatch$(EXEEXT): $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execve--secontext_mismatch$(EXEEXT): $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_mismatch_DEPENDENCIES) ++ @rm -f execve--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_LDADD) $(LIBS) ++ + execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) + @rm -f execve-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS) +@@ -7543,6 +7893,14 @@ + @rm -f execveat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_OBJECTS) $(execveat__secontext_full_LDADD) $(LIBS) + ++execveat--secontext_full_mismatch$(EXEEXT): $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++execveat--secontext_mismatch$(EXEEXT): $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_mismatch_DEPENDENCIES) ++ @rm -f execveat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_LDADD) $(LIBS) ++ + execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) + @rm -f execveat-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS) +@@ -7559,6 +7917,14 @@ + @rm -f faccessat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_OBJECTS) $(faccessat__secontext_full_LDADD) $(LIBS) + ++faccessat--secontext_full_mismatch$(EXEEXT): $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat--secontext_mismatch$(EXEEXT): $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) + @rm -f faccessat-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS) +@@ -7575,6 +7941,14 @@ + @rm -f faccessat-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_OBJECTS) $(faccessat_y__secontext_full_LDADD) $(LIBS) + ++faccessat-y--secontext_full_mismatch$(EXEEXT): $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++faccessat-y--secontext_mismatch$(EXEEXT): $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f faccessat-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_LDADD) $(LIBS) ++ + faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) + @rm -f faccessat-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS) +@@ -7623,6 +7997,14 @@ + @rm -f fanotify_mark--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_OBJECTS) $(fanotify_mark__secontext_full_LDADD) $(LIBS) + ++fanotify_mark--secontext_full_mismatch$(EXEEXT): $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fanotify_mark--secontext_mismatch$(EXEEXT): $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_mismatch_DEPENDENCIES) ++ @rm -f fanotify_mark--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_LDADD) $(LIBS) ++ + fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES) + @rm -f fanotify_mark-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS) +@@ -7651,6 +8033,14 @@ + @rm -f fchmod--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_OBJECTS) $(fchmod__secontext_full_LDADD) $(LIBS) + ++fchmod--secontext_full_mismatch$(EXEEXT): $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod--secontext_mismatch$(EXEEXT): $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_LDADD) $(LIBS) ++ + fchmod-y$(EXEEXT): $(fchmod_y_OBJECTS) $(fchmod_y_DEPENDENCIES) $(EXTRA_fchmod_y_DEPENDENCIES) + @rm -f fchmod-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y_OBJECTS) $(fchmod_y_LDADD) $(LIBS) +@@ -7663,6 +8053,14 @@ + @rm -f fchmod-y--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_OBJECTS) $(fchmod_y__secontext_full_LDADD) $(LIBS) + ++fchmod-y--secontext_full_mismatch$(EXEEXT): $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmod-y--secontext_mismatch$(EXEEXT): $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmod-y--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_LDADD) $(LIBS) ++ + fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) + @rm -f fchmodat$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS) +@@ -7675,6 +8073,14 @@ + @rm -f fchmodat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_OBJECTS) $(fchmodat__secontext_full_LDADD) $(LIBS) + ++fchmodat--secontext_full_mismatch$(EXEEXT): $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchmodat--secontext_mismatch$(EXEEXT): $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchmodat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_LDADD) $(LIBS) ++ + fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) + @rm -f fchown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS) +@@ -7695,6 +8101,14 @@ + @rm -f fchownat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_OBJECTS) $(fchownat__secontext_full_LDADD) $(LIBS) + ++fchownat--secontext_full_mismatch$(EXEEXT): $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++fchownat--secontext_mismatch$(EXEEXT): $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_mismatch_DEPENDENCIES) ++ @rm -f fchownat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_LDADD) $(LIBS) ++ + fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) + @rm -f fcntl$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS) +@@ -7731,6 +8145,14 @@ + @rm -f file_handle--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_OBJECTS) $(file_handle__secontext_full_LDADD) $(LIBS) + ++file_handle--secontext_full_mismatch$(EXEEXT): $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_LDADD) $(LIBS) ++ ++file_handle--secontext_mismatch$(EXEEXT): $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_mismatch_DEPENDENCIES) ++ @rm -f file_handle--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_LDADD) $(LIBS) ++ + filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) + @rm -f filter-unavailable$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS) +@@ -8775,6 +9197,14 @@ + @rm -f linkat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_OBJECTS) $(linkat__secontext_full_LDADD) $(LIBS) + ++linkat--secontext_full_mismatch$(EXEEXT): $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++linkat--secontext_mismatch$(EXEEXT): $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_mismatch_DEPENDENCIES) ++ @rm -f linkat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_LDADD) $(LIBS) ++ + list_sigaction_signum$(EXEEXT): $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_DEPENDENCIES) $(EXTRA_list_sigaction_signum_DEPENDENCIES) + @rm -f list_sigaction_signum$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_LDADD) $(LIBS) +@@ -9423,6 +9853,14 @@ + @rm -f open--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open__secontext_full_OBJECTS) $(open__secontext_full_LDADD) $(LIBS) + ++open--secontext_full_mismatch$(EXEEXT): $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_LDADD) $(LIBS) ++ ++open--secontext_mismatch$(EXEEXT): $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_mismatch_DEPENDENCIES) ++ @rm -f open--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_LDADD) $(LIBS) ++ + open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) + @rm -f open_tree$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS) +@@ -9443,6 +9881,14 @@ + @rm -f openat--secontext_full$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat__secontext_full_OBJECTS) $(openat__secontext_full_LDADD) $(LIBS) + ++openat--secontext_full_mismatch$(EXEEXT): $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_full_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_full_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_LDADD) $(LIBS) ++ ++openat--secontext_mismatch$(EXEEXT): $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_mismatch_DEPENDENCIES) ++ @rm -f openat--secontext_mismatch$(EXEEXT) ++ $(AM_V_CCLD)$(LINK) $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_LDADD) $(LIBS) ++ + openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) + @rm -f openat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS) +@@ -10835,6 +11281,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept4.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acct.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@ # am--include-marker +@@ -10867,6 +11315,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sigign.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown32.Po@am__quote@ # am--include-marker +@@ -10928,17 +11378,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventfd.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker +@@ -10952,6 +11410,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@ # am--include-marker +@@ -10959,17 +11419,25 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker +@@ -10979,6 +11447,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker +@@ -11276,6 +11746,8 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/llseek.Po@am__quote@ # am--include-marker +@@ -11438,11 +11910,15 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full_mismatch.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_mismatch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker +@@ -13004,6 +13480,12 @@ + $(srcdir)/access--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/access--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/access--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13055,6 +13537,12 @@ + $(srcdir)/chmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/chmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/chmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13220,6 +13708,12 @@ + $(srcdir)/execve--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execve--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execve--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13229,6 +13723,12 @@ + $(srcdir)/execveat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/execveat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/execveat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13238,6 +13738,12 @@ + $(srcdir)/faccessat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13250,6 +13756,12 @@ + $(srcdir)/faccessat-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/faccessat-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/faccessat-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13280,6 +13792,12 @@ + $(srcdir)/fanotify_mark--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fanotify_mark--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fanotify_mark--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13301,6 +13819,12 @@ + $(srcdir)/fchmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmod-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13310,6 +13834,12 @@ + $(srcdir)/fchmod-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmod-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmod-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13319,6 +13849,12 @@ + $(srcdir)/fchmodat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchmodat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchmodat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13334,6 +13870,12 @@ + $(srcdir)/fchownat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/fchownat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/fchownat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -13358,6 +13900,12 @@ + $(srcdir)/file_handle--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/file_handle--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/file_handle--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14117,6 +14665,12 @@ + $(srcdir)/linkat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/linkat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/linkat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14546,6 +15100,12 @@ + $(srcdir)/open--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/open--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/open--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +@@ -14561,6 +15121,12 @@ + $(srcdir)/openat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + ++$(srcdir)/openat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ ++$(srcdir)/openat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in ++ $(AM_V_GEN) $^ $@ ++ + $(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +--- old/configure 2022-02-07 20:23:38.732063729 +0100 ++++ configure 2022-02-07 20:24:00.604063427 +0100 +@@ -18438,7 +18438,7 @@ + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $libselinux_LDFLAGS" + missing= +- for func in getpidcon getfilecon; do ++ for func in getpidcon getfilecon selabel_open selabel_lookup; do + as_ac_Lib=`$as_echo "ac_cv_lib_selinux_$func" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $func in -lselinux" >&5 + $as_echo_n "checking for $func in -lselinux... " >&6; } +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/access--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/chmod--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/execveat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/execve--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/faccessat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/faccessat-y--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fanotify_mark--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmodat--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmod--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmod-y--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchownat--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/file_handle--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/linkat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/access--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/chmod--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/execveat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/execve--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/faccessat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/faccessat-y--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fanotify_mark--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmodat--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmod--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmod-y--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchownat--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/file_handle--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/linkat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/openat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/open--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/access--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/chmod--secontext_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/execveat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/execve--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/faccessat--secontext_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/faccessat-y--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fanotify_mark--secontext_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmodat--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmod--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmod-y--secontext_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchownat--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/file_handle--secontext_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/linkat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/openat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/open--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/openat--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/open--secontext_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/access--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/chmod--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/execveat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/execve--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/faccessat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/faccessat-y--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fanotify_mark--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmodat--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmod--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchmod-y--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/fchownat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/file_handle--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/linkat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/access--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/chmod--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/execveat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/execve--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/faccessat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/faccessat-y--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fanotify_mark--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmodat--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmod--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchmod-y--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/fchownat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/file_handle--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/linkat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/openat--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-m32/open--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/access--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "access--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/chmod--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "chmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/execveat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execveat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/execve--secontext_full_mismatch.c 2022-02-07 20:42:23.500048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "execve--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/faccessat--secontext_full_mismatch.c 2022-02-07 20:42:23.504048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/faccessat-y--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "faccessat-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fanotify_mark--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fanotify_mark--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmodat--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmodat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmod--secontext_full_mismatch.c 2022-02-07 20:42:23.508048176 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchmod-y--secontext_full_mismatch.c 2022-02-07 20:42:23.512048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchmod-y--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/fchownat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "fchownat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/file_handle--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "file_handle--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/linkat--secontext_full_mismatch.c 2022-02-07 20:42:23.516048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "linkat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/openat--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests-mx32/open--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/openat--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "openat--secontext_full.c" +--- /dev/null 2022-02-02 22:09:50.443209891 +0100 ++++ new/tests/open--secontext_full_mismatch.c 2022-02-07 20:42:23.520048175 +0100 +@@ -0,0 +1,2 @@ ++#define PRINT_SECONTEXT_MISMATCH ++#include "open--secontext_full.c" +-- +2.1.4 + diff --git a/0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch b/0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch new file mode 100644 index 0000000..78f92d3 --- /dev/null +++ b/0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch @@ -0,0 +1,122 @@ +From f5fd689e40322a7b08a97eb2d26f192610728230 Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Tue, 18 Jan 2022 16:10:28 +0100 +Subject: [PATCH 170/174] tests/linkat: reset errno before SELinux context + manipulation + +To avoid printing a stale error information in case of mismatch check +failure. + +* tests/linkat.c: Include . +(main): Add "errno = 0" before update_secontext_field calls. +--- + tests/linkat.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/tests/linkat.c b/tests/linkat.c +index 1a869e3..c3e2ee4 100644 +--- a/tests/linkat.c ++++ b/tests/linkat.c +@@ -10,6 +10,7 @@ + #include "tests.h" + #include "scno.h" + ++#include + #include + #include + #include +@@ -91,6 +92,7 @@ main(void) + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + +@@ -112,6 +114,7 @@ main(void) + free(sample_1_secontext); + #endif + ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; +@@ -142,6 +145,7 @@ main(void) + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); + ++ errno = 0; + update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + +--- a/tests-m32/linkat.c ++++ b/tests-m32/linkat.c +@@ -10,6 +10,7 @@ + #include "tests.h" + #include "scno.h" + ++#include + #include + #include + #include +@@ -91,6 +92,7 @@ main(void) + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + +@@ -112,6 +114,7 @@ main(void) + free(sample_1_secontext); + #endif + ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; +@@ -142,6 +145,7 @@ main(void) + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); + ++ errno = 0; + update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + +--- a/tests-mx32/linkat.c ++++ b/tests-mx32/linkat.c +@@ -10,6 +10,7 @@ + #include "tests.h" + #include "scno.h" + ++#include + #include + #include + #include +@@ -91,6 +92,7 @@ main(void) + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + +@@ -112,6 +114,7 @@ main(void) + free(sample_1_secontext); + #endif + ++ errno = 0; + update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; +@@ -142,6 +145,7 @@ main(void) + int dfd_old = get_dir_fd("."); + char *cwd = get_fd_path(dfd_old); + ++ errno = 0; + update_secontext_field(".", SECONTEXT_TYPE, "default_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + +-- +2.1.4 + diff --git a/0171-tests-secontext-add-secontext-field-getters.patch b/0171-tests-secontext-add-secontext-field-getters.patch new file mode 100644 index 0000000..fce5e5a --- /dev/null +++ b/0171-tests-secontext-add-secontext-field-getters.patch @@ -0,0 +1,356 @@ +From 4951286eb634c00c11883b851c91f3a21975eabd Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Tue, 18 Jan 2022 18:03:57 +0100 +Subject: [PATCH 171/174] tests/secontext: add secontext field getters + +* tests/secontext.h (get_secontext_field, get_secontext_field_file): New +declarations. +* tests/secontext.c (get_type_from_context): Rename to... +(get_secontext_field): ...this; remove "static" qualifier; add "field" +argument, use it. +(raw_expected_secontext_short_file, raw_secontext_short_pid): Replace +get_type_from_context call with get_secontext_field. +(get_secontext_field_file): New function. +(raw_secontext_short_file): Replace body with get_secontext_field_file +call. +--- + tests/secontext.c | 27 +++++++++++++++------------ + tests/secontext.h | 20 ++++++++++++++++++++ + 2 files changed, 35 insertions(+), 12 deletions(-) + +diff --git a/tests/secontext.c b/tests/secontext.c +index 848eea9..52211ed 100644 +--- a/tests/secontext.c ++++ b/tests/secontext.c +@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context) + return context; + } + +-static char * +-get_type_from_context(const char *full_context) ++char * ++get_secontext_field(const char *full_context, enum secontext_field field) + { + int saved_errno = errno; + +@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context) + char *context = NULL; + for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; + token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { ++ if (i == field) { + context = xstrdup(token); + break; + } +@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_expected_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename) + return full_secontext; + } + +-static char * +-raw_secontext_short_file(const char *filename) ++char * ++get_secontext_field_file(const char *file, enum secontext_field field) + { +- int saved_errno = errno; +- +- char *ctx = raw_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *ctx = raw_secontext_full_file(file); ++ char *type = get_secontext_field(ctx, field); + free(ctx); + +- errno = saved_errno; + return type; + } + + static char * ++raw_secontext_short_file(const char *filename) ++{ ++ return get_secontext_field_file(filename, SECONTEXT_TYPE); ++} ++ ++static char * + raw_secontext_full_pid(pid_t pid) + { + int saved_errno = errno; +@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +diff --git a/tests/secontext.h b/tests/secontext.h +index 1d0251a..e5571d5 100644 +--- a/tests/secontext.h ++++ b/tests/secontext.h +@@ -23,6 +23,15 @@ enum secontext_field { + + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + ++/** ++ * Parse a SELinux context string and return a specified field, duplicated ++ * in a separate string. The caller is responsible for freeing the memory ++ * pointed by the returned value. ++ */ ++char *get_secontext_field(const char *full_context, enum secontext_field field); ++ ++char *get_secontext_field_file(const char *file, enum secontext_field field); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field, + + #else + ++static inline char * ++get_secontext_field(const char *ctx, enum secontext_field field) ++{ ++ return NULL; ++} ++static inline char * ++get_secontext_field_file(const char *file, enum secontext_field field) ++{ ++ return NULL; ++} ++ + static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c +index 848eea9..52211ed 100644 +--- a/tests-m32/secontext.c ++++ b/tests-m32/secontext.c +@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context) + return context; + } + +-static char * +-get_type_from_context(const char *full_context) ++char * ++get_secontext_field(const char *full_context, enum secontext_field field) + { + int saved_errno = errno; + +@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context) + char *context = NULL; + for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; + token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { ++ if (i == field) { + context = xstrdup(token); + break; + } +@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_expected_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename) + return full_secontext; + } + +-static char * +-raw_secontext_short_file(const char *filename) ++char * ++get_secontext_field_file(const char *file, enum secontext_field field) + { +- int saved_errno = errno; +- +- char *ctx = raw_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *ctx = raw_secontext_full_file(file); ++ char *type = get_secontext_field(ctx, field); + free(ctx); + +- errno = saved_errno; + return type; + } + + static char * ++raw_secontext_short_file(const char *filename) ++{ ++ return get_secontext_field_file(filename, SECONTEXT_TYPE); ++} ++ ++static char * + raw_secontext_full_pid(pid_t pid) + { + int saved_errno = errno; +@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h +index 1d0251a..e5571d5 100644 +--- a/tests-m32/secontext.h ++++ b/tests-m32/secontext.h +@@ -23,6 +23,15 @@ enum secontext_field { + + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + ++/** ++ * Parse a SELinux context string and return a specified field, duplicated ++ * in a separate string. The caller is responsible for freeing the memory ++ * pointed by the returned value. ++ */ ++char *get_secontext_field(const char *full_context, enum secontext_field field); ++ ++char *get_secontext_field_file(const char *file, enum secontext_field field); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field, + + #else + ++static inline char * ++get_secontext_field(const char *ctx, enum secontext_field field) ++{ ++ return NULL; ++} ++static inline char * ++get_secontext_field_file(const char *file, enum secontext_field field) ++{ ++ return NULL; ++} ++ + static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c +index 848eea9..52211ed 100644 +--- a/tests-mx32/secontext.c ++++ b/tests-mx32/secontext.c +@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context) + return context; + } + +-static char * +-get_type_from_context(const char *full_context) ++char * ++get_secontext_field(const char *full_context, enum secontext_field field) + { + int saved_errno = errno; + +@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context) + char *context = NULL; + for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0; + token; token = strtok_r(NULL, ":", &saveptr), i++) { +- if (i == 2) { ++ if (i == field) { + context = xstrdup(token); + break; + } +@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename) + int saved_errno = errno; + + char *ctx = raw_expected_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename) + return full_secontext; + } + +-static char * +-raw_secontext_short_file(const char *filename) ++char * ++get_secontext_field_file(const char *file, enum secontext_field field) + { +- int saved_errno = errno; +- +- char *ctx = raw_secontext_full_file(filename); +- char *type = get_type_from_context(ctx); ++ char *ctx = raw_secontext_full_file(file); ++ char *type = get_secontext_field(ctx, field); + free(ctx); + +- errno = saved_errno; + return type; + } + + static char * ++raw_secontext_short_file(const char *filename) ++{ ++ return get_secontext_field_file(filename, SECONTEXT_TYPE); ++} ++ ++static char * + raw_secontext_full_pid(pid_t pid) + { + int saved_errno = errno; +@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid) + int saved_errno = errno; + + char *ctx = raw_secontext_full_pid(pid); +- char *type = get_type_from_context(ctx); ++ char *type = get_secontext_field(ctx, SECONTEXT_TYPE); + free(ctx); + + errno = saved_errno; +diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h +index 1d0251a..e5571d5 100644 +--- a/tests-mx32/secontext.h ++++ b/tests-mx32/secontext.h +@@ -23,6 +23,15 @@ enum secontext_field { + + #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME + ++/** ++ * Parse a SELinux context string and return a specified field, duplicated ++ * in a separate string. The caller is responsible for freeing the memory ++ * pointed by the returned value. ++ */ ++char *get_secontext_field(const char *full_context, enum secontext_field field); ++ ++char *get_secontext_field_file(const char *file, enum secontext_field field); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field, + + #else + ++static inline char * ++get_secontext_field(const char *ctx, enum secontext_field field) ++{ ++ return NULL; ++} ++static inline char * ++get_secontext_field_file(const char *file, enum secontext_field field) ++{ ++ return NULL; ++} ++ + static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +-- +2.1.4 + diff --git a/0172-tests-linkat-provide-fallback-values-for-secontext-f.patch b/0172-tests-linkat-provide-fallback-values-for-secontext-f.patch new file mode 100644 index 0000000..066c93a --- /dev/null +++ b/0172-tests-linkat-provide-fallback-values-for-secontext-f.patch @@ -0,0 +1,181 @@ +From 97e2742a7f1e6e113354911d04505ada3bfb5d70 Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Tue, 18 Jan 2022 18:04:42 +0100 +Subject: [PATCH 172/174] tests/linkat: provide fallback values for secontext + fields changes + +* tests/linkat.c (mangle_secontext_field): New function. +(main): Replace calls to update_secontext_field +with mangle_secontext_field calls. +--- + tests/linkat.c | 23 ++++++++++++++++++++--- + 1 file changed, 20 insertions(+), 3 deletions(-) + +diff --git a/tests/linkat.c b/tests/linkat.c +index c3e2ee4..decb736 100644 +--- a/tests/linkat.c ++++ b/tests/linkat.c +@@ -21,6 +21,20 @@ + #include "secontext.h" + #include "xmalloc.h" + ++static void ++mangle_secontext_field(const char *path, enum secontext_field field, ++ const char *new_val, const char *fallback_val) ++{ ++ char *orig = get_secontext_field_file(path, field); ++ if (!orig) ++ return; ++ ++ update_secontext_field(path, field, ++ strcmp(new_val, orig) ? new_val : fallback_val); ++ ++ free(orig); ++} ++ + int + main(void) + { +@@ -93,7 +107,8 @@ main(void) + + #ifdef PRINT_SECONTEXT_MISMATCH + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u", ++ "unconfined_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + + # ifdef PRINT_SECONTEXT_FULL +@@ -115,7 +130,8 @@ main(void) + #endif + + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + +@@ -146,7 +162,8 @@ main(void) + char *cwd = get_fd_path(dfd_old); + + errno = 0; +- update_secontext_field(".", SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(".", SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + + #ifdef PRINT_SECONTEXT_MISMATCH +diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c +index c3e2ee4..decb736 100644 +--- a/tests-m32/linkat.c ++++ b/tests-m32/linkat.c +@@ -21,6 +21,20 @@ + #include "secontext.h" + #include "xmalloc.h" + ++static void ++mangle_secontext_field(const char *path, enum secontext_field field, ++ const char *new_val, const char *fallback_val) ++{ ++ char *orig = get_secontext_field_file(path, field); ++ if (!orig) ++ return; ++ ++ update_secontext_field(path, field, ++ strcmp(new_val, orig) ? new_val : fallback_val); ++ ++ free(orig); ++} ++ + int + main(void) + { +@@ -93,7 +107,8 @@ main(void) + + #ifdef PRINT_SECONTEXT_MISMATCH + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u", ++ "unconfined_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + + # ifdef PRINT_SECONTEXT_FULL +@@ -115,7 +130,8 @@ main(void) + #endif + + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + +@@ -146,7 +162,8 @@ main(void) + char *cwd = get_fd_path(dfd_old); + + errno = 0; +- update_secontext_field(".", SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(".", SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + + #ifdef PRINT_SECONTEXT_MISMATCH +diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c +index c3e2ee4..decb736 100644 +--- a/tests-mx32/linkat.c ++++ b/tests-mx32/linkat.c +@@ -21,6 +21,20 @@ + #include "secontext.h" + #include "xmalloc.h" + ++static void ++mangle_secontext_field(const char *path, enum secontext_field field, ++ const char *new_val, const char *fallback_val) ++{ ++ char *orig = get_secontext_field_file(path, field); ++ if (!orig) ++ return; ++ ++ update_secontext_field(path, field, ++ strcmp(new_val, orig) ? new_val : fallback_val); ++ ++ free(orig); ++} ++ + int + main(void) + { +@@ -93,7 +107,8 @@ main(void) + + #ifdef PRINT_SECONTEXT_MISMATCH + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_USER, "system_u"); ++ mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u", ++ "unconfined_u"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + + # ifdef PRINT_SECONTEXT_FULL +@@ -115,7 +130,8 @@ main(void) + #endif + + errno = 0; +- update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + sample_1_secontext = SECONTEXT_FILE(sample_1); + sample_2_secontext = sample_1_secontext; + +@@ -146,7 +162,8 @@ main(void) + char *cwd = get_fd_path(dfd_old); + + errno = 0; +- update_secontext_field(".", SECONTEXT_TYPE, "default_t"); ++ mangle_secontext_field(".", SECONTEXT_TYPE, "default_t", ++ "unconfined_t"); + char *dfd_old_secontext = SECONTEXT_FILE("."); + + #ifdef PRINT_SECONTEXT_MISMATCH +-- +2.1.4 + diff --git a/0173-tests-secontext-eliminate-separate-secontext_format-.patch b/0173-tests-secontext-eliminate-separate-secontext_format-.patch new file mode 100644 index 0000000..c1eb4aa --- /dev/null +++ b/0173-tests-secontext-eliminate-separate-secontext_format-.patch @@ -0,0 +1,63 @@ +From 6e8aa3749cb7e11e9a59db996f79f036bf7ef263 Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Tue, 18 Jan 2022 18:05:19 +0100 +Subject: [PATCH 173/174] tests/secontext: eliminate separate secontext_format + declaration + +* tests/secontext.c (secontext_format): Remove declaration, supply +the attributes to the definition. +--- + tests/secontext.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/tests/secontext.c b/tests/secontext.c +index 52211ed..ba271c8 100644 +--- a/tests/secontext.c ++++ b/tests/secontext.c +@@ -23,10 +23,7 @@ + # define TEST_SECONTEXT + # include "secontext.h" + +-static char * +-secontext_format(char *context, const char *fmt) +- ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC; +- ++ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC + static char * + secontext_format(char *context, const char *fmt) + { +diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c +index 52211ed..ba271c8 100644 +--- a/tests-m32/secontext.c ++++ b/tests-m32/secontext.c +@@ -23,10 +23,7 @@ + # define TEST_SECONTEXT + # include "secontext.h" + +-static char * +-secontext_format(char *context, const char *fmt) +- ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC; +- ++ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC + static char * + secontext_format(char *context, const char *fmt) + { +diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c +index 52211ed..ba271c8 100644 +--- a/tests-mx32/secontext.c ++++ b/tests-mx32/secontext.c +@@ -23,10 +23,7 @@ + # define TEST_SECONTEXT + # include "secontext.h" + +-static char * +-secontext_format(char *context, const char *fmt) +- ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC; +- ++ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC + static char * + secontext_format(char *context, const char *fmt) + { +-- +2.1.4 + diff --git a/0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch b/0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch new file mode 100644 index 0000000..9a34d01 --- /dev/null +++ b/0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch @@ -0,0 +1,190 @@ +From 78a81bcfb71ef3d9f6e8b1a32e123fbbc6112a60 Mon Sep 17 00:00:00 2001 +From: Eugene Syromyatnikov +Date: Tue, 18 Jan 2022 18:24:34 +0100 +Subject: [PATCH 174/174] tests/linkat: reset context to the expected one if a + mismatch has been detected + +* tests/secontext.h (reset_secontext_file): New declaration. +* tests/secontext.c (reset_secontext_file): New function. +* tests/linkat.c (main): Check that there is no initial mismatch +in the sample_1 context, reset it otherwise. +--- + tests/linkat.c | 3 +++ + tests/secontext.c | 7 +++++++ + tests/secontext.h | 7 +++++++ + 3 files changed, 17 insertions(+) + +diff --git a/tests/linkat.c b/tests/linkat.c +index decb736..781b85a 100644 +--- a/tests/linkat.c ++++ b/tests/linkat.c +@@ -103,6 +103,9 @@ main(void) + if (close(fd_sample_2)) + perror_msg_and_fail("close"); + ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!")) ++ reset_secontext_file(sample_1); ++ + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH +diff --git a/tests/secontext.c b/tests/secontext.c +index ba271c8..94fadd4 100644 +--- a/tests/secontext.c ++++ b/tests/secontext.c +@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid) + return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid)); + } + ++void reset_secontext_file(const char *file) ++{ ++ char *proper_ctx = raw_expected_secontext_full_file(file); ++ (void) setfilecon(file, proper_ctx); ++ free(proper_ctx); ++} ++ + void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +diff --git a/tests/secontext.h b/tests/secontext.h +index e5571d5..387263e 100644 +--- a/tests/secontext.h ++++ b/tests/secontext.h +@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field); + + char *get_secontext_field_file(const char *file, enum secontext_field field); + ++void reset_secontext_file(const char *file); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field) + } + + static inline void ++reset_secontext_file(const char *file) ++{ ++} ++ ++static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) + { +diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c +index decb736..781b85a 100644 +--- a/tests-m32/linkat.c ++++ b/tests-m32/linkat.c +@@ -103,6 +103,9 @@ main(void) + if (close(fd_sample_2)) + perror_msg_and_fail("close"); + ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!")) ++ reset_secontext_file(sample_1); ++ + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH +diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c +index ba271c8..94fadd4 100644 +--- a/tests-m32/secontext.c ++++ b/tests-m32/secontext.c +@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid) + return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid)); + } + ++void reset_secontext_file(const char *file) ++{ ++ char *proper_ctx = raw_expected_secontext_full_file(file); ++ (void) setfilecon(file, proper_ctx); ++ free(proper_ctx); ++} ++ + void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h +index e5571d5..387263e 100644 +--- a/tests-m32/secontext.h ++++ b/tests-m32/secontext.h +@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field); + + char *get_secontext_field_file(const char *file, enum secontext_field field); + ++void reset_secontext_file(const char *file); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field) + } + + static inline void ++reset_secontext_file(const char *file) ++{ ++} ++ ++static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) + { +diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c +index decb736..781b85a 100644 +--- a/tests-mx32/linkat.c ++++ b/tests-mx32/linkat.c +@@ -103,6 +103,9 @@ main(void) + if (close(fd_sample_2)) + perror_msg_and_fail("close"); + ++ if (*sample_1_secontext && strstr(sample_1_secontext, "!!")) ++ reset_secontext_file(sample_1); ++ + free(sample_1_secontext); + + #ifdef PRINT_SECONTEXT_MISMATCH +diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c +index ba271c8..94fadd4 100644 +--- a/tests-mx32/secontext.c ++++ b/tests-mx32/secontext.c +@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid) + return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid)); + } + ++void reset_secontext_file(const char *file) ++{ ++ char *proper_ctx = raw_expected_secontext_full_file(file); ++ (void) setfilecon(file, proper_ctx); ++ free(proper_ctx); ++} ++ + void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) +diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h +index e5571d5..387263e 100644 +--- a/tests-mx32/secontext.h ++++ b/tests-mx32/secontext.h +@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field); + + char *get_secontext_field_file(const char *file, enum secontext_field field); + ++void reset_secontext_file(const char *file); ++ + void update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue); + +@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field) + } + + static inline void ++reset_secontext_file(const char *file) ++{ ++} ++ ++static inline void + update_secontext_field(const char *file, enum secontext_field field, + const char *newvalue) + { +-- +2.1.4 + diff --git a/2001-limit-qual_fault-scope-on-aarch64.patch b/2001-limit-qual_fault-scope-on-aarch64.patch new file mode 100644 index 0000000..564601b --- /dev/null +++ b/2001-limit-qual_fault-scope-on-aarch64.patch @@ -0,0 +1,57 @@ +Index: strace-5.7/tests/qual_fault.test +=================================================================== +--- strace-5.7.orig/tests/qual_fault.test 2020-06-02 10:41:25.870177356 +0200 ++++ strace-5.7/tests/qual_fault.test 2020-06-02 10:48:33.284302800 +0200 +@@ -83,19 +83,34 @@ + done + } + +-for err in '' ENOSYS 22 einval; do ++case "$STRACE_ARCH" in ++ aarch64) ++ ERRS='EnoSys 22' ++ NUMBERS1='2' ++ NUMBERS2='3' ++ NUMBERS2='5' ++ ;; ++ *) ++ ERRS='ENOSYS 22 einval' ++ NUMBERS1='1 2 3 5 7 11' ++ NUMBERS2='1 2 3 5 7 11' ++ NUMBERS3='1 2 3 5 7 11' ++ ;; ++esac ++ ++for err in '' $(echo $ERRS); do + for fault in writev desc,51; do + check_fault_injection \ + writev $fault "$err" '' '' '' 1 -efault=chdir + check_fault_injection \ + writev $fault "$err" '' '' '' 1 -efault=chdir -efault=none +- for F in 1 2 3 5 7 11; do ++ for F in $(echo $NUMBERS1); do + check_fault_injection \ + writev $fault "$err" $F '' '' 1 + check_fault_injection \ + writev $fault "$err" $F '' + 1 + +- for L in 1 2 3 5 7 11; do ++ for L in $(echo $NUMBERS2); do + [ "$L" -ge "$F" ] || + continue + check_fault_injection \ +@@ -104,12 +119,12 @@ + writev $fault "$err" $F $L + 1 + done + +- for S in 1 2 3 5 7 11; do ++ for S in $(echo $NUMBERS2); do + check_fault_injection \ + writev $fault "$err" $F '' $S 1 + check_fault_injection \ + writev $fault "$err" $F '' $S 4 +- for L in 1 2 3 5 7 11; do ++ for L in $(echo $NUMBERS3); do + [ "$L" -ge "$F" ] || + continue + check_fault_injection \ diff --git a/2003-undef-ARRAY_SIZE.patch b/2003-undef-ARRAY_SIZE.patch new file mode 100644 index 0000000..1ac46a4 --- /dev/null +++ b/2003-undef-ARRAY_SIZE.patch @@ -0,0 +1,17 @@ +Index: strace-5.12/src/unwind.c +=================================================================== +--- strace-5.12.orig/src/unwind.c 2018-12-10 01:00:00.000000000 +0100 ++++ strace-5.12/src/unwind.c 2020-06-02 11:13:42.777871147 +0200 +@@ -9,6 +9,12 @@ + #include "unwind.h" + + #ifdef USE_DEMANGLE ++/* ++ * demangle.h defines ARRAY_SIZE without proper guard, and its definition ++ * is "good enough" for us. ++ */ ++#undef ARRAY_SIZE ++ + # if defined HAVE_DEMANGLE_H + # include + # elif defined HAVE_LIBIBERTY_DEMANGLE_H diff --git a/2004-glibc-msgctl-semctl-shmctl-backport-workaround.patch b/2004-glibc-msgctl-semctl-shmctl-backport-workaround.patch new file mode 100644 index 0000000..4e6aca8 --- /dev/null +++ b/2004-glibc-msgctl-semctl-shmctl-backport-workaround.patch @@ -0,0 +1,135 @@ +Index: strace-5.12/tests/ipc_msg.c +=================================================================== +--- strace-5.12.orig/tests/ipc_msg.c 2021-05-18 13:30:38.440896349 +0200 ++++ strace-5.12/tests/ipc_msg.c 2021-05-18 13:30:04.628198661 +0200 +@@ -55,8 +55,9 @@ + * Starting with commit glibc-2.32.9000-149-gbe9b0b9a012780a403a2, + * glibc skips msgctl syscall invocations and returns EINVAL + * for invalid msgctl commands. ++ * It has been backported into glic-2.28-153 in RHEL 8.5. + */ +-#if GLIBC_PREREQ_GE(2, 32) ++#if GLIBC_PREREQ_GE(2, 28) + # define TEST_MSGCTL_BOGUS_CMD 0 + #endif + +Index: strace-5.12/tests/ipc_shm.c +=================================================================== +--- strace-5.12.orig/tests/ipc_shm.c 2021-05-18 13:30:22.373040008 +0200 ++++ strace-5.12/tests/ipc_shm.c 2021-05-18 13:30:00.835232573 +0200 +@@ -45,8 +45,9 @@ + * Starting with commit glibc-2.32.9000-207-g9ebaabeaac1a96b0d91f, + * glibc skips shmctl syscall invocations and returns EINVAL + * for invalid shmctl commands. ++ * It has been backported into glic-2.28-153 in RHEL 8.5. + */ +-#if GLIBC_PREREQ_GE(2, 32) ++#if GLIBC_PREREQ_GE(2, 28) + # define TEST_SHMCTL_BOGUS_CMD 0 + #endif + +Index: strace-5.12/tests/ipc_sem.c +=================================================================== +--- strace-5.12.orig/tests/ipc_sem.c 2020-12-31 09:00:00.000000000 +0100 ++++ strace-5.12/tests/ipc_sem.c 2021-05-18 13:56:51.453832392 +0200 +@@ -27,8 +27,9 @@ + * Starting with commit glibc-2.32.9000-147-ga16d2abd496bd974a882, + * glibc skips semctl syscall invocations and returns EINVAL + * for invalid semctl commands. ++ * It has been backported into glic-2.28-153 in RHEL 8.5. + */ +-#if GLIBC_PREREQ_GE(2, 32) ++#if GLIBC_PREREQ_GE(2, 28) + # define TEST_SEMCTL_BOGUS_CMD 0 + #endif + +Index: strace-5.12/tests-m32/ipc_msg.c +=================================================================== +--- strace-5.12.orig/tests-m32/ipc_msg.c 2021-05-18 13:30:38.440896349 +0200 ++++ strace-5.12/tests-m32/ipc_msg.c 2021-05-18 13:30:04.628198661 +0200 +@@ -55,8 +55,9 @@ + * Starting with commit glibc-2.32.9000-149-gbe9b0b9a012780a403a2, + * glibc skips msgctl syscall invocations and returns EINVAL + * for invalid msgctl commands. ++ * It has been backported into glic-2.28-153 in RHEL 8.5. + */ +-#if GLIBC_PREREQ_GE(2, 32) ++#if GLIBC_PREREQ_GE(2, 28) + # define TEST_MSGCTL_BOGUS_CMD 0 + #endif + +Index: strace-5.12/tests-m32/ipc_shm.c +=================================================================== +--- strace-5.12.orig/tests-m32/ipc_shm.c 2021-05-18 13:30:22.373040008 +0200 ++++ strace-5.12/tests-m32/ipc_shm.c 2021-05-18 13:30:00.835232573 +0200 +@@ -45,8 +45,9 @@ + * Starting with commit glibc-2.32.9000-207-g9ebaabeaac1a96b0d91f, + * glibc skips shmctl syscall invocations and returns EINVAL + * for invalid shmctl commands. ++ * It has been backported into glic-2.28-153 in RHEL 8.5. + */ +-#if GLIBC_PREREQ_GE(2, 32) ++#if GLIBC_PREREQ_GE(2, 28) + # define TEST_SHMCTL_BOGUS_CMD 0 + #endif + +Index: strace-5.12/tests-m32/ipc_sem.c +=================================================================== +--- strace-5.12.orig/tests-m32/ipc_sem.c 2020-12-31 09:00:00.000000000 +0100 ++++ strace-5.12/tests-m32/ipc_sem.c 2021-05-18 13:56:51.453832392 +0200 +@@ -27,8 +27,9 @@ + * Starting with commit glibc-2.32.9000-147-ga16d2abd496bd974a882, + * glibc skips semctl syscall invocations and returns EINVAL + * for invalid semctl commands. ++ * It has been backported into glic-2.28-153 in RHEL 8.5. + */ +-#if GLIBC_PREREQ_GE(2, 32) ++#if GLIBC_PREREQ_GE(2, 28) + # define TEST_SEMCTL_BOGUS_CMD 0 + #endif + +Index: strace-5.12/tests-mx32/ipc_msg.c +=================================================================== +--- strace-5.12.orig/tests-mx32/ipc_msg.c 2021-05-18 13:30:38.440896349 +0200 ++++ strace-5.12/tests-mx32/ipc_msg.c 2021-05-18 13:30:04.628198661 +0200 +@@ -55,8 +55,9 @@ + * Starting with commit glibc-2.32.9000-149-gbe9b0b9a012780a403a2, + * glibc skips msgctl syscall invocations and returns EINVAL + * for invalid msgctl commands. ++ * It has been backported into glic-2.28-153 in RHEL 8.5. + */ +-#if GLIBC_PREREQ_GE(2, 32) ++#if GLIBC_PREREQ_GE(2, 28) + # define TEST_MSGCTL_BOGUS_CMD 0 + #endif + +Index: strace-5.12/tests-mx32/ipc_shm.c +=================================================================== +--- strace-5.12.orig/tests-mx32/ipc_shm.c 2021-05-18 13:30:22.373040008 +0200 ++++ strace-5.12/tests-mx32/ipc_shm.c 2021-05-18 13:30:00.835232573 +0200 +@@ -45,8 +45,9 @@ + * Starting with commit glibc-2.32.9000-207-g9ebaabeaac1a96b0d91f, + * glibc skips shmctl syscall invocations and returns EINVAL + * for invalid shmctl commands. ++ * It has been backported into glic-2.28-153 in RHEL 8.5. + */ +-#if GLIBC_PREREQ_GE(2, 32) ++#if GLIBC_PREREQ_GE(2, 28) + # define TEST_SHMCTL_BOGUS_CMD 0 + #endif + +Index: strace-5.12/tests-mx32/ipc_sem.c +=================================================================== +--- strace-5.12.orig/tests-mx32/ipc_sem.c 2020-12-31 09:00:00.000000000 +0100 ++++ strace-5.12/tests-mx32/ipc_sem.c 2021-05-18 13:56:51.453832392 +0200 +@@ -27,8 +27,9 @@ + * Starting with commit glibc-2.32.9000-147-ga16d2abd496bd974a882, + * glibc skips semctl syscall invocations and returns EINVAL + * for invalid semctl commands. ++ * It has been backported into glic-2.28-153 in RHEL 8.5. + */ +-#if GLIBC_PREREQ_GE(2, 32) ++#if GLIBC_PREREQ_GE(2, 28) + # define TEST_SEMCTL_BOGUS_CMD 0 + #endif + diff --git a/sources b/sources new file mode 100644 index 0000000..1faa765 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (strace-5.13.tar.xz) = ba8b0eae396fa2b762bf17cbcdcd84b0660b2a5d5e7e9caf098ef3414a87fd28d4140dd10136483f35904560e5044e40be2bf6117462868a360306d62887c8ed diff --git a/strace.spec b/strace.spec new file mode 100644 index 0000000..3231884 --- /dev/null +++ b/strace.spec @@ -0,0 +1,734 @@ +%define __python /opt/rh/gcc-toolset-9/root/usr/bin/python3 +%{?scl:%{?scl_package:%scl_package strace}} + +Summary: Tracks and displays system calls associated with a running process +Name: %{?scl_prefix}strace +Version: 5.13 +Release: 7%{?dist} +# The test suite is GPLv2+, all the rest is LGPLv2.1+. +License: LGPL-2.1+ and GPL-2.0+ +Group: Development/Debuggers +URL: https://strace.io +Source: https://strace.io/files/%{version}/strace-%{version}.tar.xz + +%define alternatives_cmd %{!?scl:%{_sbindir}}%{?scl:%{_root_sbindir}}/alternatives +%define alternatives_cmdline %{alternatives_cmd}%{?scl: --altdir %{_sysconfdir}/alternatives --admindir %{_scl_root}/var/lib/alternatives} + +BuildRequires: libacl-devel, time +%{?scl:Requires:%scl_runtime} + +BuildRequires: gcc gzip make + +# Install Bluetooth headers for AF_BLUETOOTH sockets decoding. +%if 0%{?fedora} >= 18 || 0%{?centos} >= 8 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1200 +BuildRequires: pkgconfig(bluez) +%endif + +BuildRequires: %{?scl_prefix}elfutils-devel, %{?scl_prefix}binutils-devel +BuildRequires: libselinux-devel +%{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release} + +# OBS compatibility +%{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release} +%define maybe_use_defattr %{?suse_version:%%defattr(-,root,root)} + +# v5.13-55-g6b2191f "filter_qualify: free allocated data on the error path exit of parse_poke_token" +Patch150: 0150-filter_qualify-free-allocated-data-on-the-error-path.patch +# v5.13-56-g80dc60c "macros: expand BIT macros, add MASK macros; add *_SAFE macros" +Patch151: 0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch +# v5.13-58-g94ae5c2 "trie: use BIT* and MASK* macros" +Patch152: 0152-trie-use-BIT-and-MASK-macros.patch +# v5.13-65-g41b753e "tee: rewrite num_params access in tee_fetch_buf_data" +Patch153: 0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch + +# v5.15~1 "print_ifindex: fix IFNAME_QUOTED_SZ definition" +Patch167: 0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch + +# v5.15~18 "m4: fix st_SELINUX check" +Patch168: 0168-m4-fix-st_SELINUX-check.patch +# v5.16~31 "Implement displaying of expected context upon mismatch" +Patch169: 0169-Implement-displaying-of-expected-context-upon-mismat.patch +Patch170: 0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch +Patch171: 0171-tests-secontext-add-secontext-field-getters.patch +Patch172: 0172-tests-linkat-provide-fallback-values-for-secontext-f.patch +Patch173: 0173-tests-secontext-eliminate-separate-secontext_format-.patch +Patch174: 0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch + +## RHEL-only: aarch64 brew builders are extremely slow on qual_fault.test +Patch2001: 2001-limit-qual_fault-scope-on-aarch64.patch +## RHEL-only: avoid ARRAY_SIZE macro re-definition in libiberty.h +Patch2003: 2003-undef-ARRAY_SIZE.patch +## RHEL-only: glibc-2.32.9000-147-ga16d2abd496bd974a882, +## glibc-2.32.9000-149-gbe9b0b9a012780a403a2 and +## glibc-2.32.9000-207-g9ebaabeaac1a96b0d91f have been backported in RHEL. +Patch2004: 2004-glibc-msgctl-semctl-shmctl-backport-workaround.patch + +# Fallback definitions for make_build/make_install macros +%{?!__make: %global __make %_bindir/make} +%{?!__install: %global __install %_bindir/install} +%{?!make_build: %global make_build %__make %{?_smp_mflags}} +%{?!make_install: %global make_install %__make install DESTDIR="%{?buildroot}" INSTALL="%__install -p"} + +%description +The strace program intercepts and records the system calls called and +received by a running process. Strace can print a record of each +system call, its arguments and its return value. Strace is useful for +diagnosing problems and debugging, as well as for instructional +purposes. + +Install strace if you need a tool to track the system calls made and +received by a process. + +%prep +%setup -q -n strace-%{version} + +%patch150 -p1 +%patch151 -p1 +%patch152 -p1 +%patch153 -p1 + +%patch167 -p1 + +%patch168 -p1 +%patch169 -p1 +%patch170 -p1 +%patch171 -p1 +%patch172 -p1 +%patch173 -p1 +%patch174 -p1 + +%patch2001 -p1 +%patch2003 -p1 +%patch2004 -p1 + +chmod a+x tests/*.test + +echo -n %version-%release > .tarball-version +echo -n 2020 > .year +echo -n 2021-05-14 > doc/.strace.1.in.date + +%build +echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION' +uname -a |head -1 +libc="$(ldd /bin/sh |sed -n 's|^[^/]*\(/[^ ]*/libc\.so[^ ]*\).*|\1|p' |head -1)" +$libc |head -1 +file -L /bin/sh +gcc --version |head -1 +ld --version |head -1 +kver="$(printf '%%s\n%%s\n' '#include ' 'LINUX_VERSION_CODE' | gcc -E -P -)" +printf 'kernel-headers %%s.%%s.%%s\n' $(($kver/65536)) $(($kver/256%%256)) $(($kver%%256)) +echo 'END OF BUILD ENVIRONMENT INFORMATION' + +LDFLAGS="$RPM_LD_FLAGS -L%{_libdir} -L%{_libdir}/elfutils" +export LDLFAGS + +# -DHAVE_S390_COMPAT_REGS is needed due to lack of v3.10-rc1~201^2~11 +CFLAGS="$RPM_OPT_FLAGS $LDFLAGS" +# Removing explicit -m64 as it breaks mpers +[ "x${CFLAGS#*-m64}" = "x${CFLAGS}" ] || CFLAGS=$(echo "$CFLAGS" | sed 's/-m64//g') +export CFLAGS + +CPPFLAGS="-isystem %{_includedir} %{optflags}" +# Removing explicit -m64 as it breaks mpers +[ "x${CPPFLAGS#*-m64}" = "x${CPPFLAGS}" ] || CPPFLAGS=$(echo "$CPPFLAGS" | sed 's/-m64//g') +export CPPFLAGS + +CFLAGS_FOR_BUILD="$RPM_OPT_FLAGS"; export CFLAGS_FOR_BUILD +%configure --enable-mpers=check --with-libdw +%make_build + +%install +%make_install + +# some say uncompressed changelog files are too big +for f in ChangeLog ChangeLog-CVS; do + gzip -9n < "$f" > "$f".gz & +done +wait + +%check +%{buildroot}%{_bindir}/strace -V + +%make_build -j2 -k check VERBOSE=1 TIMEOUT_DURATION=5400 +echo 'BEGIN OF TEST SUITE INFORMATION' +tail -n 99999 -- tests*/test-suite.log tests*/ksysent.gen.log +find tests* -type f -name '*.log' -print0 | + xargs -r0 grep -H '^KERNEL BUG:' -- ||: +echo 'END OF TEST SUITE INFORMATION' + +%files +%maybe_use_defattr +%doc CREDITS ChangeLog.gz ChangeLog-CVS.gz COPYING LGPL-2.1-or-later NEWS README +%{_bindir}/strace +%{_bindir}/strace-log-merge +%{_mandir}/man1/* + +%changelog +* Mon Feb 07 2022 Eugene Syromiatnikov - 5.13-7 +- Update tests-m32 and tests-mx32 with --secontext=mismatch option support + changes (#2046265). + +* Wed Jan 19 2022 Eugene Syromiatnikov - 5.13-6 +- Add --secontext=mismatch option support (#2038992). + +* Wed Jan 05 2022 Eugene Syromiatnikov - 5.13-5 +- Fix incorrect ifname printing buffer size (#2028163). + +* Tue Aug 24 2021 Eugene Syromiatnikov - 5.13-4 +- Work around unknown msgctl/semctl/shmctl cmd check issue in tests-m32 + and tests-mx32 as well (#1997082). + +* Mon Aug 23 2021 Eugene Syromiatnikov - 5.13-3 +- Address some issues reported by covscan (#1995509). + +* Tue Jul 20 2021 Eugene Syromiatnikov - 5.13-1 +- Rebase to v5.13. + +* Fri May 14 2021 Eugene Syromiatnikov - 5.12-1 +- Rebase to v5.12; drop upstream patches on top of 5.7 (#1958326). + +* Mon Nov 09 2020 Eugene Syromiatnikov - 5.7-2 +- Add PID namespace translation support (#1790836). + +* Tue Jun 02 2020 Eugene Syromiatnikov - 5.7-1 +- Rebase to v5.7; drop upstream patches on top of 5.1 (#1817210). + +* Mon Jan 27 2020 Eugene Syromiatnikov - 5.1-6 +- Fix expected alignment for IPC tests (#1794490): + 4377e3a1 "tests: fix expected output for some ipc tests", and + a75c7c4b "tests: fix -a argument in ipc_msgbuf-Xraw test". + +* Thu Jan 23 2020 Eugene Syromiatnikov - 5.1-5 +- Fix printing stack traces for early syscalls on process attach (#1790054): + 69b2c33a "unwind-libdw: fix initialization of libdwfl cache", + 35e080ae "syscall: do not capture stack trace while the tracee executes + strace code", and + 8e515c74 "tests: add strace-k-p test". +- Properly decode struct sockaddr_hci without hci_channel field. + +* Fri Jan 03 2020 Eugene Syromiatnikov - 5.1-4 +- Pull upstream fix for ioctl evdev bitset decoding, fix the tests (#1747213). +- Include upstream patches that fix issues reported by covscan (#1747530): + 91281fec "v4l2: avoid shifting left a signed number by 31 bit", + 522ad3a0 "syscall.c: avoid infinite loop in subcalls parsing", + 9446038e "kvm: avoid bogus vcpu_info assignment in vcpu_register", and + 2b64854e "xlat: use unsgined type for mount_flags fallback values". + +* Fri Jun 14 2019 Eugene Syromiatnikov - 5.1-3 +- Use SPDX abbreviations for licenses. +- Add library directories to existing LDFLAGS and not override them. + +* Thu Jun 13 2019 Eugene Syromiatnikov - 5.1-2 +- Add SCL macros (#1685491). + +* Wed May 22 2019 Dmitry V. Levin - 5.1-1 +- v5.0 -> v5.1. + +* Tue Mar 19 2019 Dmitry V. Levin - 5.0-1 +- v4.26 -> v5.0 (resolves: #478419, #526740, #851457, #1609318, + #1610774, #1662936, #1676045). + +* Wed Dec 26 2018 Dmitry V. Levin - 4.26-1 +- v4.25 -> v4.26. + +* Tue Oct 30 2018 Dmitry V. Levin - 4.25-1 +- v4.24 -> v4.25. + +* Tue Aug 14 2018 Dmitry V. Levin - 4.24-1 +- v4.23 -> v4.24. + +* Thu Jun 14 2018 Dmitry V. Levin - 4.23-1 +- v4.22 -> v4.23. +- Enabled libdw backend for -k option (#1568647). + +* Thu Apr 05 2018 Dmitry V. Levin - 4.22-1 +- v4.21 -> v4.22. + +* Tue Feb 13 2018 Dmitry V. Levin - 4.21-1 +- v4.20 -> v4.21. + +* Mon Nov 13 2017 Dmitry V. Levin - 4.20-1 +- v4.19 -> v4.20. + +* Tue Sep 05 2017 Dmitry V. Levin - 4.19-1 +- v4.18 -> v4.19. + +* Wed Jul 05 2017 Dmitry V. Levin - 4.18-1 +- v4.17 -> v4.18. + +* Wed May 24 2017 Dmitry V. Levin - 4.17-1 +- v4.16 -> v4.17. + +* Tue Feb 14 2017 Dmitry V. Levin - 4.16-1 +- v4.15 -> v4.16. + +* Wed Dec 14 2016 Dmitry V. Levin - 4.15-1 +- v4.14-100-g622af42 -> v4.15. + +* Wed Nov 16 2016 Dmitry V. Levin - 4.14.0.100.622a-1 +- v4.14 -> v4.14-100-g622af42: + + implemented syscall fault injection. + +* Tue Oct 04 2016 Dmitry V. Levin - 4.14-1 +- v4.13 -> v4.14: + + added printing of the mode argument of open and openat syscalls + when O_TMPFILE flag is set (#1377846). + +* Tue Jul 26 2016 Dmitry V. Levin - 4.13-1 +- v4.12 -> v4.13. + +* Tue May 31 2016 Dmitry V. Levin - 4.12-1 +- v4.11-163-g972018f -> v4.12. + +* Fri Feb 05 2016 Fedora Release Engineering - 4.11.0.163.9720-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jan 15 2016 Dmitry V. Levin - 4.11.0.163.9720-1 +- New upstream snapshot v4.11-163-g972018f: + + fixed decoding of syscalls unknown to the kernel on s390/s390x (#1298294). + +* Wed Dec 23 2015 Dmitry V. Levin - 4.11-2 +- Enabled experimental -k option on x86_64 (#1170296). + +* Mon Dec 21 2015 Dmitry V. Levin - 4.11-1 +- New upstream release: + + print nanoseconds along with seconds in stat family syscalls (#1251176). + +* Fri Jun 19 2015 Fedora Release Engineering - 4.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon May 11 2015 Marcin Juszkiewicz - 4.10-2 +- Backport set of upstream patches to get it buildable on AArch64 + +* Fri Mar 06 2015 Dmitry V. Levin - 4.10-1 +- New upstream release: + + enhanced ioctl decoding (#902788). + +* Mon Nov 03 2014 Lubomir Rintel - 4.9-3 +- Regenerate ioctl entries with proper kernel headers + +* Mon Aug 18 2014 Fedora Release Engineering - 4.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Aug 15 2014 Dmitry V. Levin - 4.9-1 +- New upstream release: + + fixed build when and conflict (#993384); + + updated CLOCK_* constants (#1088455); + + enabled ppc64le support (#1122323); + + fixed attach to a process on ppc64le (#1129569). + +* Fri Jul 25 2014 Dan HorĂ¡k - 4.8-5 +- update for ppc64 + +* Sun Jun 08 2014 Fedora Release Engineering - 4.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Dec 6 2013 Peter Robinson 4.8-3 +- Fix FTBFS + +* Sun Aug 04 2013 Fedora Release Engineering - 4.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Jun 03 2013 Dmitry V. Levin - 4.8-1 +- New upstream release: + + fixed ERESTARTNOINTR leaking to userspace on ancient kernels (#659382); + + fixed decoding of *xattr syscalls (#885233); + + fixed handling of files with 64-bit inode numbers by 32-bit strace (#912790); + + added aarch64 support (#969858). + +* Fri Feb 15 2013 Fedora Release Engineering - 4.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Jul 21 2012 Fedora Release Engineering - 4.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed May 02 2012 Dmitry V. Levin 4.7-1 +- New upstream release. + + implemented proper handling of real SIGTRAPs (#162774). + +* Sat Jan 14 2012 Fedora Release Engineering - 4.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Mar 14 2011 Dmitry V. Levin - 4.6-1 +- New upstream release. + + fixed a corner case in waitpid handling (#663547). + +* Wed Feb 09 2011 Fedora Release Engineering - 4.5.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Apr 13 2010 Roland McGrath - 4.5.20-1 +- New upstream release, work mostly by Andreas Schwab and Dmitry V. Levin. + + fixed potential stack buffer overflow in select decoder (#556678); + + fixed FTBFS (#539044). + +* Wed Oct 21 2009 Roland McGrath - 4.5.19-1 +- New upstream release, work mostly by Dmitry V. Levin + + exit/kill strace with traced process exitcode/signal (#105371); + + fixed build on ARM EABI (#507576); + + fixed display of 32-bit argv array on 64-bit architectures (#519480); + + fixed display of 32-bit fcntl(F_SETLK) on 64-bit architectures (#471169); + + fixed several bugs in strings decoder, including potential heap + memory corruption (#470529, #478324, #511035). + +* Thu Aug 28 2008 Roland McGrath - 4.5.18-1 +- build fix for newer kernel headers (#457291) +- fix CLONE_VFORK handling (#455078) +- Support new Linux/PPC system call subpage_prot and PROT_SAO flag. +- In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN. + +* Mon Jul 21 2008 Roland McGrath - 4.5.17-1 +- handle O_CLOEXEC, MSG_CMSG_CLOEXEC (#365781) +- fix biarch stat64 decoding (#222275) +- fix spurious "..." in printing of environment strings (#358241) +- improve prctl decoding (#364401) +- fix hang wait on exited child with exited child (#354261) +- fix biarch fork/vfork (-f) tracing (#447475) +- fix biarch printing of negative argument kill (#430585) +- fix biarch decoding of error return values (#447587) +- fix -f tracing of CLONE_VFORK (#455078) +- fix ia64 register clobberation in -f tracing (#453438) +- print SO_NODEFER, SA_RESETHAND instead of SA_NOMASK, SA_ONESHOT (#455821) +- fix futex argument decoding (#448628, #448629) + +* Fri Aug 3 2007 Roland McGrath - 4.5.16-1 +- fix multithread issues (#240962, #240961, #247907) +- fix spurious SIGSTOP on early interrupt (#240986) +- fix utime for biarch (#247185) +- fix -u error message (#247170) +- better futex syscall printing (##241467) +- fix argv/envp printing with small -s settings, and for biarch +- new syscalls: getcpu, eventfd, timerfd, signalfd, epoll_pwait, + move_pages, utimensat + +* Tue Jan 16 2007 Roland McGrath - 4.5.15-1 +- biarch fixes (#179740, #192193, #171626, #173050, #218433, #218043) +- fix -ff -o behavior (#204950, #218435, #193808, #219423) +- better quotactl printing (#118696) +- *at, inotify*, pselect6, ppoll and unshare syscalls (#178633, #191275) +- glibc-2.5 build fixes (#209856) +- memory corruption fixes (#200621 +- fix race in child setup under -f (#180293) +- show ipc key values in hex (#198179, #192182) +- disallow -c with -ff (#187847) +- Resolves: RHBZ #179740, RHBZ #192193, RHBZ #204950, RHBZ #218435 +- Resolves: RHBZ #193808, RHBZ #219423, RHBZ #171626, RHBZ #173050 +- Resolves: RHBZ #218433, RHBZ #218043, RHBZ #118696, RHBZ #178633 +- Resolves: RHBZ #191275, RHBZ #209856, RHBZ #200621, RHBZ #180293 +- Resolves: RHBZ #198179, RHBZ #198182, RHBZ #187847 + +* Mon Nov 20 2006 Jakub Jelinek - 4.5.14-4 +- Fix ia64 syscall decoding (#206768) +- Fix build with glibc-2.4.90-33 and up on all arches but ia64 +- Fix build against 2.6.18+ headers + +* Tue Aug 22 2006 Roland McGrath - 4.5.14-3 +- Fix bogus decoding of syscalls >= 300 (#201462, #202620). + +* Fri Jul 14 2006 Jesse Keating - 4.5.14-2 +- rebuild + +* Fri Feb 10 2006 Jesse Keating - 4.5.14-1.2 +- bump again for long double bug on ppc{,64} + +* Tue Feb 07 2006 Jesse Keating - 4.5.14-1.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Mon Jan 16 2006 Roland McGrath - 4.5.14-1 +- Fix biarch decoding of socket syscalls (#174354). +- Fix biarch -e support (#173986). +- Accept numeric syscalls in -e (#174798). +- Fix ipc syscall decoding (#164755). +- Improve msgrcv printing (#164757). +- Man page updates (#165375). +- Improve mount syscall printing (#165377). +- Correct printing of restarting syscalls (#165469). + +* Wed Aug 3 2005 Roland McGrath - 4.5.13-1 +- Fix setsockopt decoding on 64-bit (#162449). +- Fix typos in socket option name strings (#161578). +- Display more IPV6 socket options by name (#162450). +- Don't display inappropriate syscalls for -e trace=file (#159340). +- New selector type -e trace=desc for file-descriptor using calls (#159400). +- Fix 32-bit old_mmap syscall decoding on x86-64 (#162467, #164215). +- Fix errors detaching from multithreaded process on interrupt (#161919). +- Note 4.5.12 fix for crash handling bad signal numbers (#162739). + +* Wed Jun 8 2005 Roland McGrath - 4.5.12-1 +- Fix known syscall recognition for IA32 processes on x86-64 (#158934). +- Fix bad output for ptrace on x86-64 (#159787). +- Fix potential buffer overruns (#151570, #159196). +- Make some diagnostics more consistent (#159308). +- Update PowerPC system calls. +- Better printing for Linux aio system calls. +- Don't truncate statfs64 fields to 32 bits in output (#158243). +- Cosmetic code cleanups (#159688). + +* Tue Mar 22 2005 Roland McGrath - 4.5.11-1 +- Build tweaks. +- Note 4.5.10 select fix (#151570). + +* Mon Mar 14 2005 Roland McGrath - 4.5.10-1 +- Fix select handling on nonstandard fd_set sizes. +- Don't print errors for null file name pointers. +- Fix initial execve output with -i (#143365). + +* Fri Feb 4 2005 Roland McGrath - 4.5.9-2 +- update ia64 syscall list (#146245) +- fix x86_64 syscall argument extraction for 32-bit processes (#146093) +- fix -e signal=NAME parsing (#143362) +- fix x86_64 exit_group syscall handling +- improve socket ioctl printing (#138223) +- code cleanups (#143369, #143370) +- improve mount flags printing (#141932) +- support symbolic printing of x86_64 arch_prctl parameters (#142667) +- fix potential crash in getxattr printing + +* Tue Oct 19 2004 Roland McGrath - 4.5.8-1 +- fix multithreaded exit handling (#132150, #135254) +- fix ioctl name matching (#129808) +- print RTC_* ioctl structure contents (#58606) +- grok epoll_* syscalls (#134463) +- grok new RLIMIT_* values (#133594) +- print struct cmsghdr contents for sendmsg (#131689) +- fix clock_* and timer_* argument output (#131420) + +* Tue Aug 31 2004 Roland McGrath - 4.5.7-2 +- new upstream version, misc fixes and updates (#128091, #129166, #128391, #129378, #130965, #131177) + +* Mon Jul 12 2004 Roland McGrath 4.5.6-1 +- new upstream version, updates ioctl lists (#127398), fixes quotactl (#127393), more ioctl decoding (#126917) + +* Sun Jun 27 2004 Roland McGrath 4.5.5-1 +- new upstream version, fixes x86-64 biarch support (#126547) + +* Tue Jun 15 2004 Elliot Lee 4.5.4-2 +- rebuilt + +* Thu Jun 3 2004 Roland McGrath 4.5.4-0.FC1 +- rebuilt for FC1 update + +* Thu Jun 3 2004 Roland McGrath 4.5.4-1 +- new upstream version, more ioctls (#122257), minor fixes + +* Fri Apr 16 2004 Roland McGrath 4.5.3-1 +- new upstream version, mq_* calls (#120701), -p vs NPTL (#120462), more fixes (#118694, #120541, #118685) + +* Tue Mar 02 2004 Elliot Lee 4.5.2-1.1 +- rebuilt + +* Mon Mar 1 2004 Roland McGrath 4.5.2-1 +- new upstream version, sched_* calls (#116990), show core flag (#112117) + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Thu Nov 13 2003 Roland McGrath 4.5.1-1 +- new upstream version, more fixes (#108012, #105366, #105359, #105358) + +* Tue Sep 30 2003 Roland McGrath 4.5-3 +- revert bogus s390 fix + +* Thu Sep 25 2003 Roland McGrath 4.5-1.2.1AS +- rebuilt for 2.1AS erratum + +* Wed Sep 24 2003 Roland McGrath 4.5-2 +- rebuilt + +* Wed Sep 24 2003 Roland McGrath 4.5-1 +- new upstream version, more fixes (#101499, #104365) + +* Thu Jul 17 2003 Roland McGrath 4.4.99-2 +- rebuilt + +* Thu Jul 17 2003 Roland McGrath 4.4.99-1 +- new upstream version, groks more new system calls, PF_INET6 sockets + +* Tue Jun 10 2003 Roland McGrath 4.4.98-1 +- new upstream version, more fixes (#90754, #91085) + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Sun Mar 30 2003 Roland McGrath 4.4.96-1 +- new upstream version, handles yet more 2.5 syscalls, x86_64 & ia64 fixes + +* Mon Feb 24 2003 Elliot Lee 4.4.95-2 +- rebuilt + +* Mon Feb 24 2003 Roland McGrath 4.4.95-1 +- new upstream version, fixed getresuid/getresgid (#84959) + +* Wed Feb 19 2003 Roland McGrath 4.4.94-1 +- new upstream version, new option -E to set environment variables (#82392) + +* Wed Jan 22 2003 Tim Powers 4.4.93-2 +- rebuilt + +* Tue Jan 21 2003 Roland McGrath 4.4.93-1 +- new upstream version, fixes ppc and s390 bugs, adds missing ptrace requests + +* Fri Jan 10 2003 Roland McGrath 4.4.91-1 +- new upstream version, fixes -f on x86-64 + +* Fri Jan 10 2003 Roland McGrath 4.4.90-1 +- new upstream version, fixes all known bugs modulo ia64 and s390 issues + +* Fri Jan 03 2003 Florian La Roche 4.4-11 +- add further s390 patch from IBM + +* Wed Nov 27 2002 Tim Powers 4.4-10 +- remove unpackaged files from the buildroot + +* Mon Oct 07 2002 Phil Knirsch 4.4-9.1 +- Added latest s390(x) patch. + +* Fri Sep 06 2002 Karsten Hopp 4.4-9 +- preliminary x86_64 support with an ugly patch to help + debugging. Needs cleanup! + +* Mon Sep 2 2002 Jakub Jelinek 4.4-8 +- newer version of the clone fixing patch (Roland McGrath) +- aio syscalls for i386/ia64/ppc (Ben LaHaise) + +* Wed Aug 28 2002 Jakub Jelinek 4.4-7 +- fix strace -f (Roland McGrath, #68994) +- handle ?et_thread_area, SA_RESTORER (Ulrich Drepper) + +* Fri Jun 21 2002 Jakub Jelinek 4.4-6 +- handle futexes, *xattr, sendfile64, etc. (Ulrich Drepper) +- handle modify_ldt (#66894) + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Tue Apr 16 2002 Jakub Jelinek 4.4-4 +- fix for the last patch by Jeff Law (#62591) + +* Mon Mar 4 2002 Preston Brown 4.4-3 +- integrate patch from Jeff Law to eliminate hang tracing threads + +* Sat Feb 23 2002 Florian La Roche +- minor update from debian tar-ball + +* Wed Jan 02 2002 Florian La Roche +- update to 4.4 + +* Sun Jul 22 2001 Florian La Roche +- disable s390 patches, they are already included + +* Wed Jul 18 2001 Preston Brown 4.3-1 +- new upstream version. Seems to have integrated most new syscalls +- tracing threaded programs is now functional. + +* Mon Jun 11 2001 Than Ngo +- port s390 patches from IBM + +* Wed May 16 2001 Nalin Dahyabhai +- modify new syscall patch to allocate enough heap space in setgroups32() + +* Wed Feb 14 2001 Jakub Jelinek +- #include in addition to + +* Fri Jan 26 2001 Karsten Hopp +- clean up conflicting patches. This happened only + when building on S390 + +* Fri Jan 19 2001 Bill Nottingham +- update to CVS, reintegrate ia64 support + +* Fri Dec 8 2000 Bernhard Rosenkraenzer +- Get S/390 support into the normal package + +* Sat Nov 18 2000 Florian La Roche +- added S/390 patch from IBM, adapting it to not conflict with + IA64 patch + +* Sat Aug 19 2000 Jakub Jelinek +- doh, actually apply the 2.4 syscalls patch +- make it compile with 2.4.0-test7-pre4+ headers, add + getdents64 and fcntl64 + +* Thu Aug 3 2000 Jakub Jelinek +- add a bunch of new 2.4 syscalls (#14036) + +* Wed Jul 12 2000 Prospector +- automatic rebuild +- excludearch ia64 + +* Fri Jun 2 2000 Matt Wilson +- use buildinstall for FHS + +* Wed May 24 2000 Jakub Jelinek +- make things compile on sparc +- fix sigreturn on sparc + +* Fri Mar 31 2000 Bill Nottingham +- fix stat64 misdef (#10485) + +* Tue Mar 21 2000 Michael K. Johnson +- added ia64 patch + +* Thu Feb 03 2000 Cristian Gafton +- man pages are compressed +- version 4.2 (why are we keeping all these patches around?) + +* Sat Nov 27 1999 Jeff Johnson +- update to 4.1 (with sparc socketcall patch). + +* Fri Nov 12 1999 Jakub Jelinek +- fix socketcall on sparc. + +* Thu Sep 02 1999 Cristian Gafton +- fix KERN_SECURELVL compile problem + +* Tue Aug 31 1999 Cristian Gafton +- added alpha patch from HJLu to fix the osf_sigprocmask interpretation + +* Sat Jun 12 1999 Jeff Johnson +- update to 3.99.1. + +* Wed Jun 2 1999 Jeff Johnson +- add (the other :-) jj's sparc patch. + +* Wed May 26 1999 Jeff Johnson +- upgrade to 3.99 in order to +- add new 2.2.x open flags (#2955). +- add new 2.2.x syscalls (#2866). +- strace 3.1 patches carried along for now. + +* Sun May 16 1999 Jeff Johnson +- don't rely on (broken!) rpm %%patch (#2735) + +* Tue Apr 06 1999 Preston Brown +- strip binary + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 16) + +* Tue Feb 9 1999 Jeff Johnson +- vfork est arrive! + +* Tue Feb 9 1999 Christopher Blizzard +- Add patch to follow clone() syscalls, too. + +* Sun Jan 17 1999 Jeff Johnson +- patch to build alpha/sparc with glibc 2.1. + +* Thu Dec 03 1998 Cristian Gafton +- patch to build on ARM + +* Wed Sep 30 1998 Jeff Johnson +- fix typo (printf, not tprintf). + +* Sat Sep 19 1998 Jeff Johnson +- fix compile problem on sparc. + +* Tue Aug 18 1998 Cristian Gafton +- buildroot + +* Mon Jul 20 1998 Cristian Gafton +- added the umoven patch from James Youngman +- fixed build problems on newer glibc releases + +* Mon Jun 08 1998 Prospector System +- translations modified for de, fr, tr