From 1b510900e24459353922a1bc83c0b58bc8bafe1c Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Thu, 9 Nov 2017 16:06:33 +0100
Subject: unshare: -r should map root to user, not the other way around

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>

diff --git a/util-linux/unshare.c b/util-linux/unshare.c
index a4bbb8c9e..7c295da1f 100644
--- a/util-linux/unshare.c
+++ b/util-linux/unshare.c
@@ -339,7 +339,7 @@ int unshare_main(int argc UNUSED_PARAM, char **argv)
 	}
 
 	if (opts & OPT_map_root) {
-		char uidmap_buf[sizeof("%u 0 1") + sizeof(int)*3];
+		char uidmap_buf[sizeof("0 %u 1") + sizeof(int)*3];
 
 		/*
 		 * Since Linux 3.19 unprivileged writing of /proc/self/gid_map
@@ -348,9 +348,9 @@ int unshare_main(int argc UNUSED_PARAM, char **argv)
 		 * in that user namespace.
 		 */
 		xopen_xwrite_close(PATH_PROC_SETGROUPS, "deny");
-		sprintf(uidmap_buf, "%u 0 1", (unsigned)reuid);
+		sprintf(uidmap_buf, "0 %u 1", (unsigned)reuid);
 		xopen_xwrite_close(PATH_PROC_UIDMAP, uidmap_buf);
-		sprintf(uidmap_buf, "%u 0 1", (unsigned)regid);
+		sprintf(uidmap_buf, "0 %u 1", (unsigned)regid);
 		xopen_xwrite_close(PATH_PROC_GIDMAP, uidmap_buf);
 	} else
 	if (setgrp_str) {
