diff mbox

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

Message ID a771422c87b3e86d78754478befbc6a3dd63416e.1322152179.git.chris@arachsys.com
State New
Headers show

Commit Message

Chris Webb Nov. 24, 2011, 4:29 p.m. UTC
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(-)
diff mbox

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);
         }