diff VBoxFrontend/ProgramLoader.cs @ 3:b0033e69105a

Set group ID during initialization, added a patch to mono to fix a double free 'bug'
author Ivo Smits
date Wed, 04 May 2011 16:32:10 +0200
parents e1ec7bf71313
children
line wrap: on
line diff
--- a/VBoxFrontend/ProgramLoader.cs	Wed May 04 16:10:08 2011 +0200
+++ b/VBoxFrontend/ProgramLoader.cs	Wed May 04 16:32:10 2011 +0200
@@ -26,7 +26,13 @@
 		private static void Unix_setuid() {
 			uint uid = Mono.Unix.Native.Syscall.getuid();
 			uint euid = Mono.Unix.Native.Syscall.geteuid();
-			Console.WriteLine("Running as user {0} effective {1}", uid, euid);
+			uint gid = Mono.Unix.Native.Syscall.getgid();
+			uint egid = Mono.Unix.Native.Syscall.getegid();
+			Console.WriteLine("Running as user {0} effective {1} group {2} effective {3}", uid, euid, gid, egid);
+			if (gid != egid) {
+				Console.WriteLine("Set group ID: {0}", gid);
+				Mono.Unix.Native.Syscall.setregid(gid, gid);
+			}
 			if (uid != euid) {
 				Console.WriteLine("Set user ID: {0}", uid);
 				Mono.Unix.Native.Syscall.setreuid(uid, uid);