From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:55347) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RTcSG-0008TT-Rf for qemu-devel@nongnu.org; Thu, 24 Nov 2011 11:47:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RTcSC-0001xq-03 for qemu-devel@nongnu.org; Thu, 24 Nov 2011 11:47:20 -0500 Received: from alpha.arachsys.com ([91.203.57.7]:52731) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RTcSB-0001x7-Ie for qemu-devel@nongnu.org; Thu, 24 Nov 2011 11:47:15 -0500 Date: Thu, 24 Nov 2011 16:47:11 +0000 From: Chris Webb Message-ID: <20111124164710.GC19135@arachsys.com> References: <4ECE74CB.7060001@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4ECE74CB.7060001@redhat.com> Subject: Re: [Qemu-devel] [PATCH 2/2] Allow -runas to be specified as UID:GID as well as USERNAME List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: qemu-devel@nongnu.org Avi Kivity writes: > 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. Okay, will re-spin; thanks! Cheers, Chris.