Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O0MTf-000281-MR for qemu-devel@nongnu.org; Fri, 09 Apr 2010 18:15:03 -0400 Received: from [140.186.70.92] (port=34616 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O0MTe-00026E-9V for qemu-devel@nongnu.org; Fri, 09 Apr 2010 18:15:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O0MTc-0004o0-MC for qemu-devel@nongnu.org; Fri, 09 Apr 2010 18:15:02 -0400 Received: from hall.aurel32.net ([88.191.82.174]:43855) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O0MTc-0004n1-H2 for qemu-devel@nongnu.org; Fri, 09 Apr 2010 18:15:00 -0400 Date: Sat, 10 Apr 2010 00:14:50 +0200 From: Aurelien Jarno Subject: Re: [Qemu-devel] [PATCH] block: Fix multiwrite error handling Message-ID: <20100409221450.GN21042@volta.aurel32.net> References: <1270154924-10400-1-git-send-email-kwolf@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1270154924-10400-1-git-send-email-kwolf@redhat.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: qemu-devel@nongnu.org On Thu, Apr 01, 2010 at 10:48:44PM +0200, Kevin Wolf wrote: > When two requests of the same multiwrite batch fail, the callback of all > requests in that batch were called twice. This could have any kind of nasty > effects, in my case it lead to use after free and eventually a segfault. > > Signed-off-by: Kevin Wolf Thanks, applied. > --- > block.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/block.c b/block.c > index 31610af..1c36e91 100644 > --- a/block.c > +++ b/block.c > @@ -1734,7 +1734,7 @@ static void multiwrite_cb(void *opaque, int ret) > { > MultiwriteCB *mcb = opaque; > > - if (ret < 0) { > + if (ret < 0 && !mcb->error) { > mcb->error = ret; > multiwrite_user_cb(mcb); > } > -- > 1.6.6.1 > > > > -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net