[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/2] Allow -runas to be specified as UID:GID as
From: |
Avi Kivity |
Subject: |
Re: [Qemu-devel] [PATCH 2/2] Allow -runas to be specified as UID:GID as well as USERNAME |
Date: |
Thu, 24 Nov 2011 18:46:03 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 |
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. user_pwd is never freed, not that it matters ,uch.
> + user_pwd->pw_uid = uid;
> + user_pwd->pw_gid = gid;
> + }
> + }
> + if (!user_pwd) {
> fprintf(stderr, "User \"%s\" doesn't exist\n", optarg);
> exit(1);
> }
--
error compiling committee.c: too many arguments to function