From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Hdupt-0000ks-RV for qemu-devel@nongnu.org; Tue, 17 Apr 2007 17:03:37 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Hdups-0000kU-FZ for qemu-devel@nongnu.org; Tue, 17 Apr 2007 17:03:36 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Hdups-0000kR-59 for qemu-devel@nongnu.org; Tue, 17 Apr 2007 17:03:36 -0400 Received: from grayson.netsweng.com ([207.235.77.11]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Hdul6-0002Yy-IY for qemu-devel@nongnu.org; Tue, 17 Apr 2007 16:58:40 -0400 Received: from amavis by grayson.netsweng.com with scanned-ok (Exim 3.36 #1 (Debian)) id 1Hdul6-00077i-00 for ; Tue, 17 Apr 2007 16:58:40 -0400 Received: from grayson.netsweng.com ([127.0.0.1]) by localhost (grayson.netsweng.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hP6qixnjkqXU for ; Tue, 17 Apr 2007 16:58:22 -0400 (EDT) Received: from h211.241.141.67.ip.alltel.net ([67.141.241.211] helo=trantor.stuart.netsweng.com) by grayson.netsweng.com with esmtp (Exim 3.36 #1 (Debian)) id 1Hduko-00077b-00 for ; Tue, 17 Apr 2007 16:58:22 -0400 Date: Tue, 17 Apr 2007 16:58:01 -0400 (EDT) From: Stuart Anderson Subject: Re: [Qemu-devel] [PATCH] semaphore syscalls - refresh In-Reply-To: Message-ID: References: <20070331185808.GB24690@networkno.de> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Thiemo, Just wondering if you had a chance to take another look at this. On Sat, 31 Mar 2007, Stuart Anderson wrote: > On Sat, 31 Mar 2007, Thiemo Seufer wrote: > >>> + switch( cmd ) { >>> + case GETALL: >>> + case SETALL: >>> + case IPC_STAT: >>> + case IPC_SET: >>> + lock_user_struct(target_su, target_addr, 1); >>> + target_to_host_semid_ds(ds,target_su->buf); >>> + host_su->buf = ds; >>> + unlock_user_struct(target_su, target_addr, 0); >>> + break; >> >> I don't see how this can work with target_su being an uninitialized >> pointer. > > #define lock_user_struct(host_ptr, guest_addr, copy) \ > host_ptr = lock_user(guest_addr, sizeof(*host_ptr), copy) > > target_su is the left hand side of the assignment. The macro just hides it. > > > Stuart > > Stuart R. Anderson anderson@netsweng.com > Network & Software Engineering http://www.netsweng.com/ > 1024D/37A79149: 0791 D3B8 9A4C 2CDC A31F > BD03 0A62 E534 37A7 9149