Patchwork [v2,1/2] Do not generate spurious error for -runas root

login
register
mail settings
Submitter Chris Webb
Date Nov. 24, 2011, 4:56 p.m.
Message ID <a771422c87b3e86d78754478befbc6a3dd63416e.1322153761.git.chris@arachsys.com>
Download mbox | patch
Permalink /patch/127561/
State New
Headers show

Comments

Chris Webb - Nov. 24, 2011, 4:56 p.m.
change_process_uid() checks that privileges have been successfully dropped by
verifying that setuid(0) fails. However, if qemu is explicitly -runas root,
the setuid(0) would correctly succeed, so we skip the test in that case.

Signed-off-by: Chris Webb <chris@arachsys.com>
---
 os-posix.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Patch

diff --git a/os-posix.c b/os-posix.c
index dc4a6bb..1b2061a 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -209,7 +209,7 @@  static void change_process_uid(void)
             fprintf(stderr, "Failed to setuid(%d)\n", user_pwd->pw_uid);
             exit(1);
         }
-        if (setuid(0) != -1) {
+        if (user_pwd->pw_uid != 0 && setuid(0) != -1) {
             fprintf(stderr, "Dropping privileges failed\n");
             exit(1);
         }