4a389010ff
* 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>
191 lines
5.6 KiB
Diff
191 lines
5.6 KiB
Diff
From 78a81bcfb71ef3d9f6e8b1a32e123fbbc6112a60 Mon Sep 17 00:00:00 2001
|
|
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
|
Date: Tue, 18 Jan 2022 18:24:34 +0100
|
|
Subject: [PATCH 174/174] tests/linkat: reset context to the expected one if a
|
|
mismatch has been detected
|
|
|
|
* tests/secontext.h (reset_secontext_file): New declaration.
|
|
* tests/secontext.c (reset_secontext_file): New function.
|
|
* tests/linkat.c (main): Check that there is no initial mismatch
|
|
in the sample_1 context, reset it otherwise.
|
|
---
|
|
tests/linkat.c | 3 +++
|
|
tests/secontext.c | 7 +++++++
|
|
tests/secontext.h | 7 +++++++
|
|
3 files changed, 17 insertions(+)
|
|
|
|
diff --git a/tests/linkat.c b/tests/linkat.c
|
|
index decb736..781b85a 100644
|
|
--- a/tests/linkat.c
|
|
+++ b/tests/linkat.c
|
|
@@ -103,6 +103,9 @@ main(void)
|
|
if (close(fd_sample_2))
|
|
perror_msg_and_fail("close");
|
|
|
|
+ if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
|
|
+ reset_secontext_file(sample_1);
|
|
+
|
|
free(sample_1_secontext);
|
|
|
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
|
diff --git a/tests/secontext.c b/tests/secontext.c
|
|
index ba271c8..94fadd4 100644
|
|
--- a/tests/secontext.c
|
|
+++ b/tests/secontext.c
|
|
@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid)
|
|
return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
|
|
}
|
|
|
|
+void reset_secontext_file(const char *file)
|
|
+{
|
|
+ char *proper_ctx = raw_expected_secontext_full_file(file);
|
|
+ (void) setfilecon(file, proper_ctx);
|
|
+ free(proper_ctx);
|
|
+}
|
|
+
|
|
void
|
|
update_secontext_field(const char *file, enum secontext_field field,
|
|
const char *newvalue)
|
|
diff --git a/tests/secontext.h b/tests/secontext.h
|
|
index e5571d5..387263e 100644
|
|
--- a/tests/secontext.h
|
|
+++ b/tests/secontext.h
|
|
@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
|
|
|
|
char *get_secontext_field_file(const char *file, enum secontext_field field);
|
|
|
|
+void reset_secontext_file(const char *file);
|
|
+
|
|
void update_secontext_field(const char *file, enum secontext_field field,
|
|
const char *newvalue);
|
|
|
|
@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field)
|
|
}
|
|
|
|
static inline void
|
|
+reset_secontext_file(const char *file)
|
|
+{
|
|
+}
|
|
+
|
|
+static inline void
|
|
update_secontext_field(const char *file, enum secontext_field field,
|
|
const char *newvalue)
|
|
{
|
|
diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c
|
|
index decb736..781b85a 100644
|
|
--- a/tests-m32/linkat.c
|
|
+++ b/tests-m32/linkat.c
|
|
@@ -103,6 +103,9 @@ main(void)
|
|
if (close(fd_sample_2))
|
|
perror_msg_and_fail("close");
|
|
|
|
+ if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
|
|
+ reset_secontext_file(sample_1);
|
|
+
|
|
free(sample_1_secontext);
|
|
|
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
|
diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c
|
|
index ba271c8..94fadd4 100644
|
|
--- a/tests-m32/secontext.c
|
|
+++ b/tests-m32/secontext.c
|
|
@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid)
|
|
return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
|
|
}
|
|
|
|
+void reset_secontext_file(const char *file)
|
|
+{
|
|
+ char *proper_ctx = raw_expected_secontext_full_file(file);
|
|
+ (void) setfilecon(file, proper_ctx);
|
|
+ free(proper_ctx);
|
|
+}
|
|
+
|
|
void
|
|
update_secontext_field(const char *file, enum secontext_field field,
|
|
const char *newvalue)
|
|
diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h
|
|
index e5571d5..387263e 100644
|
|
--- a/tests-m32/secontext.h
|
|
+++ b/tests-m32/secontext.h
|
|
@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
|
|
|
|
char *get_secontext_field_file(const char *file, enum secontext_field field);
|
|
|
|
+void reset_secontext_file(const char *file);
|
|
+
|
|
void update_secontext_field(const char *file, enum secontext_field field,
|
|
const char *newvalue);
|
|
|
|
@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field)
|
|
}
|
|
|
|
static inline void
|
|
+reset_secontext_file(const char *file)
|
|
+{
|
|
+}
|
|
+
|
|
+static inline void
|
|
update_secontext_field(const char *file, enum secontext_field field,
|
|
const char *newvalue)
|
|
{
|
|
diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c
|
|
index decb736..781b85a 100644
|
|
--- a/tests-mx32/linkat.c
|
|
+++ b/tests-mx32/linkat.c
|
|
@@ -103,6 +103,9 @@ main(void)
|
|
if (close(fd_sample_2))
|
|
perror_msg_and_fail("close");
|
|
|
|
+ if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
|
|
+ reset_secontext_file(sample_1);
|
|
+
|
|
free(sample_1_secontext);
|
|
|
|
#ifdef PRINT_SECONTEXT_MISMATCH
|
|
diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c
|
|
index ba271c8..94fadd4 100644
|
|
--- a/tests-mx32/secontext.c
|
|
+++ b/tests-mx32/secontext.c
|
|
@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid)
|
|
return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
|
|
}
|
|
|
|
+void reset_secontext_file(const char *file)
|
|
+{
|
|
+ char *proper_ctx = raw_expected_secontext_full_file(file);
|
|
+ (void) setfilecon(file, proper_ctx);
|
|
+ free(proper_ctx);
|
|
+}
|
|
+
|
|
void
|
|
update_secontext_field(const char *file, enum secontext_field field,
|
|
const char *newvalue)
|
|
diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h
|
|
index e5571d5..387263e 100644
|
|
--- a/tests-mx32/secontext.h
|
|
+++ b/tests-mx32/secontext.h
|
|
@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
|
|
|
|
char *get_secontext_field_file(const char *file, enum secontext_field field);
|
|
|
|
+void reset_secontext_file(const char *file);
|
|
+
|
|
void update_secontext_field(const char *file, enum secontext_field field,
|
|
const char *newvalue);
|
|
|
|
@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field)
|
|
}
|
|
|
|
static inline void
|
|
+reset_secontext_file(const char *file)
|
|
+{
|
|
+}
|
|
+
|
|
+static inline void
|
|
update_secontext_field(const char *file, enum secontext_field field,
|
|
const char *newvalue)
|
|
{
|
|
--
|
|
2.1.4
|
|
|