2022-01-19 20:03:53 +00:00
|
|
|
From 97e2742a7f1e6e113354911d04505ada3bfb5d70 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
|
|
|
Date: Tue, 18 Jan 2022 18:04:42 +0100
|
|
|
|
Subject: [PATCH 172/174] tests/linkat: provide fallback values for secontext
|
|
|
|
fields changes
|
|
|
|
|
|
|
|
* tests/linkat.c (mangle_secontext_field): New function.
|
|
|
|
(main): Replace calls to update_secontext_field
|
|
|
|
with mangle_secontext_field calls.
|
|
|
|
---
|
|
|
|
tests/linkat.c | 23 ++++++++++++++++++++---
|
|
|
|
1 file changed, 20 insertions(+), 3 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/tests/linkat.c b/tests/linkat.c
|
|
|
|
index c3e2ee4..decb736 100644
|
|
|
|
--- a/tests/linkat.c
|
|
|
|
+++ b/tests/linkat.c
|
|
|
|
@@ -21,6 +21,20 @@
|
|
|
|
#include "secontext.h"
|
|
|
|
#include "xmalloc.h"
|
|
|
|
|
|
|
|
+static void
|
|
|
|
+mangle_secontext_field(const char *path, enum secontext_field field,
|
|
|
|
+ const char *new_val, const char *fallback_val)
|
|
|
|
+{
|
|
|
|
+ char *orig = get_secontext_field_file(path, field);
|
|
|
|
+ if (!orig)
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ update_secontext_field(path, field,
|
|
|
|
+ strcmp(new_val, orig) ? new_val : fallback_val);
|
Add missing generated/m32/mx32 chunks for --secontext=mismatch option support
* 0168-m4-fix-st_SELINUX-check.patch: Add missing configure changes.
* 0169-Implement-displaying-of-expected-context-upon-mismat.patch: Add
missing tests-m32/gen_tests.in, tests-m32/linkat.c,
tests-m32/options-syntax.test, tests-m32/secontext.c,
tests-m32/secontext.h, tests-mx32/gen_tests.in, tests-mx32/linkat.c,
tests-mx32/options-syntax.test, tests-mx32/secontext.c,
tests-mx32/secontext.h, tests/Makefile.in, tests-m32/Makefile.in,
tests-mx32/Makefile.in, and configure changes, as well as all
tests*/_mismatch.c files.
* 0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch: Add
missing tests-m32/linkat.c and tests-mx32/linkat.c changes.
* 0171-tests-secontext-add-secontext-field-getters.patch: Add missing
tests-m32/secontext.c, tests-m32/secontext.h, tests-mx32/secontext.c,
and tests-mx32/secontext.h changes.
* 0172-tests-linkat-provide-fallback-values-for-secontext-f.patch: Add
missing tests-m32/linkat.c and tests-mx32/linkat.c changes.
* 0173-tests-secontext-eliminate-separate-secontext_format-.patch: Add
missing tests-m32/secontext.c and tests-mx32/secontext.c changes.
* 0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch: Add
missing tests-m32/linkat.c, tests-m32/secontext.c,
tests-m32/secontext.h, tests-mx32/linkat.c, tests-mx32/secontext.c,
and tests-mx32/secontext.h changes.
* strace.spec (Release): Bump to 7.
(%changelog): Mention the change.
Resolves: #2046264
Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
2022-02-07 20:18:59 +00:00
|
|
|
+
|
|
|
|
+ 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);
|
2022-01-19 20:03:53 +00:00
|
|
|
+
|
|
|
|
+ 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
|
|
|
|
|