qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] block: Fix multiwrite error handling


From: Kevin Wolf
Subject: [Qemu-devel] [PATCH] block: Fix multiwrite error handling
Date: Thu, 1 Apr 2010 22:48:44 +0200

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 <address@hidden>
---
 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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]