Fix: qemu-img: error while compressing sector <NNN>: Input/output error (bz #1214855)
This commit is contained in:
parent
d902376d84
commit
8f61459adc
57
0001-qcow2-Handle-EAGAIN-returned-from-update_refcount.patch
Normal file
57
0001-qcow2-Handle-EAGAIN-returned-from-update_refcount.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
From 3e5feb6202149e8a963a33b911216e40d790f1d7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Jind=C5=99ich=20Makovi=C4=8Dka?= <makovick@gmail.com>
|
||||||
|
Date: Wed, 24 Jun 2015 07:05:25 +0200
|
||||||
|
Subject: [PATCH] qcow2: Handle EAGAIN returned from update_refcount
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Fixes a crash during image compression
|
||||||
|
|
||||||
|
Signed-off-by: Jindřich Makovička <makovick@gmail.com>
|
||||||
|
Tested-by: Richard W.M. Jones <rjones@redhat.com>
|
||||||
|
Reviewed-by: Max Reitz <mreitz@redhat.com>
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
---
|
||||||
|
block/qcow2-refcount.c | 22 ++++++++++++----------
|
||||||
|
1 file changed, 12 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c
|
||||||
|
index 0632fc3..b0ee42d 100644
|
||||||
|
--- a/block/qcow2-refcount.c
|
||||||
|
+++ b/block/qcow2-refcount.c
|
||||||
|
@@ -940,19 +940,21 @@ int64_t qcow2_alloc_bytes(BlockDriverState *bs, int size)
|
||||||
|
}
|
||||||
|
|
||||||
|
free_in_cluster = s->cluster_size - offset_into_cluster(s, offset);
|
||||||
|
- if (!offset || free_in_cluster < size) {
|
||||||
|
- int64_t new_cluster = alloc_clusters_noref(bs, s->cluster_size);
|
||||||
|
- if (new_cluster < 0) {
|
||||||
|
- return new_cluster;
|
||||||
|
- }
|
||||||
|
+ do {
|
||||||
|
+ if (!offset || free_in_cluster < size) {
|
||||||
|
+ int64_t new_cluster = alloc_clusters_noref(bs, s->cluster_size);
|
||||||
|
+ if (new_cluster < 0) {
|
||||||
|
+ return new_cluster;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (!offset || ROUND_UP(offset, s->cluster_size) != new_cluster) {
|
||||||
|
- offset = new_cluster;
|
||||||
|
+ if (!offset || ROUND_UP(offset, s->cluster_size) != new_cluster) {
|
||||||
|
+ offset = new_cluster;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
|
||||||
|
- assert(offset);
|
||||||
|
- ret = update_refcount(bs, offset, size, 1, false, QCOW2_DISCARD_NEVER);
|
||||||
|
+ assert(offset);
|
||||||
|
+ ret = update_refcount(bs, offset, size, 1, false, QCOW2_DISCARD_NEVER);
|
||||||
|
+ } while (ret == -EAGAIN);
|
||||||
|
if (ret < 0) {
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.4.3
|
||||||
|
|
10
qemu.spec
10
qemu.spec
@ -43,7 +43,7 @@
|
|||||||
Summary: QEMU is a FAST! processor emulator
|
Summary: QEMU is a FAST! processor emulator
|
||||||
Name: qemu
|
Name: qemu
|
||||||
Version: 2.3.0
|
Version: 2.3.0
|
||||||
Release: 5%{?dist}
|
Release: 6%{?dist}
|
||||||
Epoch: 2
|
Epoch: 2
|
||||||
License: GPLv2+ and LGPLv2+ and BSD
|
License: GPLv2+ and LGPLv2+ and BSD
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
@ -78,6 +78,11 @@ Patch0001: 0001-fdc-force-the-fifo-access-to-be-in-bounds-of-the-all.patch
|
|||||||
# #1222894)
|
# #1222894)
|
||||||
Patch0002: 0002-slirp-use-less-predictable-directory-name-in-tmp-for.patch
|
Patch0002: 0002-slirp-use-less-predictable-directory-name-in-tmp-for.patch
|
||||||
|
|
||||||
|
# Fix: qemu-img: error while compressing sector <NNN>: Input/output error
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1214855
|
||||||
|
# Upstream in 2.4.0-rc0
|
||||||
|
Patch0003: 0001-qcow2-Handle-EAGAIN-returned-from-update_refcount.patch
|
||||||
|
|
||||||
BuildRequires: SDL2-devel
|
BuildRequires: SDL2-devel
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
BuildRequires: which
|
BuildRequires: which
|
||||||
@ -1179,6 +1184,9 @@ getent passwd qemu >/dev/null || \
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jul 20 2015 Richard W.M. Jones <rjones@redhat.com> - 2:2.3.0-6
|
||||||
|
- Fix: qemu-img: error while compressing sector <NNN>: Input/output error (bz #1214855)
|
||||||
|
|
||||||
* Fri Jun 05 2015 Cole Robinson <crobinso@redhat.com> - 2:2.3.0-5
|
* Fri Jun 05 2015 Cole Robinson <crobinso@redhat.com> - 2:2.3.0-5
|
||||||
- CVE-2015-4037: insecure temporary file use in /net/slirp.c (bz #1222894)
|
- CVE-2015-4037: insecure temporary file use in /net/slirp.c (bz #1222894)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user