aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Blagodarenko <artem.blagodarenko@gmail.com>2021-04-22 01:24:48 -0400
committerTheodore Ts'o <tytso@mit.edu>2021-05-07 18:48:45 -0400
commitf11448318f99aa5fde27aea6b73420d6c495a4f6 (patch)
tree9fe3a81d3814ac6e6073066ac14d5e906bab54c9
parent9ae89fe3a96f089ed5683df1cd0660e7e1694af0 (diff)
downloade2fsprogs-f11448318f99aa5fde27aea6b73420d6c495a4f6.tar.gz
e2image: fix overflow in l2 table processing
For a large partition during e2image capture process it is possible to overflow offset at multiply operation. This leads to the situation when data is written to the position at the start of the image instead of the image end. Let's use the right cast to avoid integer overflow. Signed-off-by: Alexey Lyashkov <c17817@cray.com> Signed-off-by: Artem Blagodarenko <c17828@cray.com> HPE-bug-id: LUS-9368 Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r--lib/ext2fs/qcow2.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/ext2fs/qcow2.c b/lib/ext2fs/qcow2.c
index ee701f7a3..208241707 100644
--- a/lib/ext2fs/qcow2.c
+++ b/lib/ext2fs/qcow2.c
@@ -238,7 +238,7 @@ int qcow2_write_raw_image(int qcow2_fd, int raw_fd,
if (offset == 0)
continue;
- off_out = (l1_index * img.l2_size) +
+ off_out = ((__u64)l1_index * img.l2_size) +
l2_index;
off_out <<= img.cluster_bits;
ret = qcow2_copy_data(qcow2_fd, raw_fd, offset,