On 11/24/2011 06:46 PM, Avi Kivity wrote: > On 11/24/2011 06:29 PM, Chris Webb wrote: > > This allows qemu to drop privileges to a dynamically allocated, anonymous > > UID > > and GID without needing a temporary /etc/passwd entry for that UID. The > > UID:GID format is very standard, being (for example) the syntax used by > > chown(1) for numeric IDs. > > > @@ -179,6 +179,15 @@ void os_parse_cmd_args(int index, const char *optarg) > > case QEMU_OPTION_runas: > > user_pwd = getpwnam(optarg); > > if (!user_pwd) { > > + long uid, gid, tail; > > + if (sscanf(optarg, "%ld:%ld%ln", &uid, &gid, &tail) >= 2 > > + && !optarg[tail]) { > > + user_pwd = g_malloc0(sizeof(user_pwd)); > > g_new0() please.
In fact this is a bug - you allocate a pointer instead of a struct passwd. -- error compiling committee.c: too many arguments to function