summaryrefslogtreecommitdiffstats
path: root/userns-Unbreak-the-unprivileged-remount-tests.patch
diff options
context:
space:
mode:
Diffstat (limited to 'userns-Unbreak-the-unprivileged-remount-tests.patch')
-rw-r--r--userns-Unbreak-the-unprivileged-remount-tests.patch91
1 files changed, 0 insertions, 91 deletions
diff --git a/userns-Unbreak-the-unprivileged-remount-tests.patch b/userns-Unbreak-the-unprivileged-remount-tests.patch
deleted file mode 100644
index 69edd2ed3..000000000
--- a/userns-Unbreak-the-unprivileged-remount-tests.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From: "Eric W. Biederman" <ebiederm@xmission.com>
-Date: Tue, 2 Dec 2014 13:56:30 -0600
-Subject: [PATCH] userns: Unbreak the unprivileged remount tests
-
-A security fix in caused the way the unprivileged remount tests were
-using user namespaces to break. Tweak the way user namespaces are
-being used so the test works again.
-
-Cc: stable@vger.kernel.org
-Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
----
- .../selftests/mount/unprivileged-remount-test.c | 32 ++++++++++++++++------
- 1 file changed, 24 insertions(+), 8 deletions(-)
-
-diff --git a/tools/testing/selftests/mount/unprivileged-remount-test.c b/tools/testing/selftests/mount/unprivileged-remount-test.c
-index 9669d375625a..517785052f1c 100644
---- a/tools/testing/selftests/mount/unprivileged-remount-test.c
-+++ b/tools/testing/selftests/mount/unprivileged-remount-test.c
-@@ -53,17 +53,14 @@ static void die(char *fmt, ...)
- exit(EXIT_FAILURE);
- }
-
--static void write_file(char *filename, char *fmt, ...)
-+static void vmaybe_write_file(bool enoent_ok, char *filename, char *fmt, va_list ap)
- {
- char buf[4096];
- int fd;
- ssize_t written;
- int buf_len;
-- va_list ap;
-
-- va_start(ap, fmt);
- buf_len = vsnprintf(buf, sizeof(buf), fmt, ap);
-- va_end(ap);
- if (buf_len < 0) {
- die("vsnprintf failed: %s\n",
- strerror(errno));
-@@ -74,6 +71,8 @@ static void write_file(char *filename, char *fmt, ...)
-
- fd = open(filename, O_WRONLY);
- if (fd < 0) {
-+ if ((errno == ENOENT) && enoent_ok)
-+ return;
- die("open of %s failed: %s\n",
- filename, strerror(errno));
- }
-@@ -92,6 +91,26 @@ static void write_file(char *filename, char *fmt, ...)
- }
- }
-
-+static void maybe_write_file(char *filename, char *fmt, ...)
-+{
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ vmaybe_write_file(true, filename, fmt, ap);
-+ va_end(ap);
-+
-+}
-+
-+static void write_file(char *filename, char *fmt, ...)
-+{
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ vmaybe_write_file(false, filename, fmt, ap);
-+ va_end(ap);
-+
-+}
-+
- static int read_mnt_flags(const char *path)
- {
- int ret;
-@@ -144,13 +163,10 @@ static void create_and_enter_userns(void)
- strerror(errno));
- }
-
-+ maybe_write_file("/proc/self/setgroups", "deny");
- write_file("/proc/self/uid_map", "0 %d 1", uid);
- write_file("/proc/self/gid_map", "0 %d 1", gid);
-
-- if (setgroups(0, NULL) != 0) {
-- die("setgroups failed: %s\n",
-- strerror(errno));
-- }
- if (setgid(0) != 0) {
- die ("setgid(0) failed %s\n",
- strerror(errno));
---
-2.1.0
-