From: Kevin Wolf Date: Wed, 18 Apr 2012 14:18:14 +0000 (+0200) Subject: qcow2: Fix error handling in qcow2_alloc_cluster_offset X-Git-Tag: TizenStudio_2.0_p2.3.2~208^2~4219^2~29 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8dc0a5e7a06c059683f9c379c0a4b0bbc20d5c74;p=sdk%2Femulator%2Fqemu.git qcow2: Fix error handling in qcow2_alloc_cluster_offset If do_alloc_cluster_offset() fails, the error handling code tried to remove the request from the in-flight queue, to which it wasn't added yet, resulting in a NULL pointer dereference. m->nb_clusters really only becomes != 0 when the request is in the list. Signed-off-by: Kevin Wolf --- diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c index cbd224d..dcf70a2 100644 --- a/block/qcow2-cluster.c +++ b/block/qcow2-cluster.c @@ -931,7 +931,7 @@ again: fail: qcow2_cache_put(bs, s->l2_table_cache, (void**) &l2_table); fail_put: - if (nb_clusters > 0) { + if (m->nb_clusters > 0) { QLIST_REMOVE(m, next_in_flight); } return ret;