Alberto Garcia e4d7019e1a qcow2: Avoid integer wraparound in qcow2_co_truncate()
After commit f01643fb8b47e8a70c04bbf45e0f12a9e5bc54de when an image is
extended and BDRV_REQ_ZERO_WRITE is set then the new clusters are
zeroized.

The code however does not detect correctly situations when the old and
the new end of the image are within the same cluster. The problem can
be reproduced with these steps:

   qemu-img create -f qcow2 backing.qcow2 1M
   qemu-img create -f qcow2 -F qcow2 -b backing.qcow2 top.qcow2
   qemu-img resize --shrink top.qcow2 520k
   qemu-img resize top.qcow2 567k

In the last step offset - zero_start causes an integer wraparound.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Message-Id: <20200504155217.10325-1-berto@igalia.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2020-05-08 13:26:35 +02:00
..
001
2020-05-05 13:17:36 +02:00
2018-01-23 12:34:43 +01:00
2019-10-14 17:12:48 +02:00
2017-07-11 17:45:02 +02:00
2019-07-30 12:25:43 +02:00
2019-11-19 10:01:34 +01:00
052
2020-05-05 13:17:36 +02:00
063
2020-01-06 13:43:07 +01:00
2020-01-06 13:43:07 +01:00
2015-01-23 12:41:32 -05:00
2017-05-11 12:08:24 +02:00
2017-09-06 15:19:01 +01:00
079
2020-01-06 13:43:07 +01:00
082
2020-05-08 13:26:35 +02:00
2019-07-12 15:42:23 +02:00
083
2019-10-28 11:22:31 +01:00
085
2020-03-24 11:57:38 +01:00
087
2020-03-24 11:57:38 +01:00
091
2020-05-08 13:26:35 +02:00
2020-01-06 13:43:07 +01:00
106
2020-01-06 13:43:07 +01:00
110
2020-01-06 13:43:07 +01:00
2020-01-06 13:43:07 +01:00
111
2020-01-06 13:43:07 +01:00
2018-06-11 16:18:45 +02:00
115
2020-01-06 13:43:07 +01:00
2019-08-16 10:25:16 +02:00
125
2020-01-06 13:43:07 +01:00
2017-10-26 15:01:14 +02:00
134
2020-05-05 13:17:36 +02:00
2016-05-19 16:45:31 +02:00
137
2020-01-06 13:43:07 +01:00
2020-01-06 13:43:07 +01:00
140
2019-10-28 11:22:31 +01:00
143
2019-10-28 11:22:31 +01:00
147
2020-02-20 16:43:42 +01:00
148
2020-05-08 13:26:35 +02:00
149
2020-05-05 13:17:36 +02:00
153
2020-05-05 13:17:36 +02:00
2020-05-05 13:17:36 +02:00
2020-03-11 15:54:38 +01:00
2016-09-20 22:10:57 +02:00
2016-09-20 22:10:57 +02:00
162
2019-10-10 12:13:23 +02:00
2019-10-10 12:13:23 +02:00
2017-09-26 15:00:32 +02:00
2016-09-20 22:10:57 +02:00
2017-09-18 19:43:38 -04:00
174
2020-01-06 13:43:07 +01:00
2017-02-12 00:47:42 +01:00
175
2020-01-06 13:43:07 +01:00
188
2020-05-05 13:17:36 +02:00
192
2019-10-28 11:22:31 +01:00
194
2020-05-05 13:17:36 +02:00
198
2020-01-06 13:43:07 +01:00
2020-01-06 13:43:07 +01:00
202
2020-05-05 13:17:36 +02:00
203
2020-05-05 13:17:36 +02:00
206
2020-05-05 13:17:36 +02:00
207
2020-05-05 13:17:36 +02:00
2019-06-24 16:01:04 +02:00
208
2020-05-05 13:17:36 +02:00
209
2020-05-05 13:17:36 +02:00
210
2020-05-05 13:17:36 +02:00
211
2020-05-05 13:17:36 +02:00
212
2020-05-05 13:17:36 +02:00
213
2020-05-05 13:17:36 +02:00
216
2020-05-05 13:17:36 +02:00
218
2020-05-05 13:17:36 +02:00
219
2020-05-05 13:17:36 +02:00
222
2020-05-05 13:17:36 +02:00
224
2020-05-05 13:17:36 +02:00
2019-10-10 10:56:18 +02:00
228
2020-05-05 13:17:36 +02:00
2019-02-25 15:11:27 +01:00
2019-03-19 15:49:29 +01:00
233
2019-06-13 08:50:47 -05:00
234
2020-05-05 13:17:36 +02:00
2019-02-01 13:46:44 +01:00
235
2020-05-05 13:17:36 +02:00
236
2020-05-05 13:17:36 +02:00
237
2020-05-05 13:17:36 +02:00
238
2020-05-05 13:17:36 +02:00
2019-02-01 13:46:44 +01:00
240
2019-10-28 11:22:31 +01:00
242
2020-05-05 13:17:36 +02:00
246
2020-05-05 13:17:36 +02:00
2019-03-19 15:49:29 +01:00
248
2020-05-05 13:17:36 +02:00
2019-06-04 16:55:58 +02:00
254
2020-05-05 13:17:36 +02:00
2019-08-16 16:28:03 -04:00
255
2020-05-05 13:17:36 +02:00
256
2020-05-05 13:17:36 +02:00
258
2020-05-05 13:17:36 +02:00
260
2020-05-05 13:17:36 +02:00
262
2020-05-05 13:17:36 +02:00
263
2019-09-16 15:37:12 +02:00
2019-09-16 15:37:12 +02:00
264
2020-05-05 13:17:36 +02:00
2019-10-22 20:51:31 -05:00
265
2020-01-06 13:43:07 +01:00
274
2020-05-05 13:17:36 +02:00
277
2020-05-05 13:17:36 +02:00
2019-11-18 16:01:31 -06:00
279
2020-03-24 11:57:38 +01:00
280
2020-05-05 13:17:36 +02:00
283
2020-05-05 13:17:36 +02:00
286
2020-02-20 16:43:42 +01:00
2020-05-08 13:26:35 +02:00

=== This is the QEMU I/O test suite ===

* Intro

This package contains a simple test suite for the I/O layer of qemu.
It does not require a guest, but only the qemu, qemu-img and qemu-io
binaries.  This does limit it to exercise the low-level I/O path only
but no actual block drivers like ide, scsi or virtio.

* Usage

Just run ./check to run all tests for the raw image format, or ./check
-qcow2 to test the qcow2 image format.  The output of ./check -h explains
additional options to test further image formats or I/O methods.

* Feedback and patches

Please send improvements to the test suite, general feedback or just
reports of failing tests cases to qemu-devel@nongnu.org with a CC:
to qemu-block@nongnu.org.