[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 348fcc: qcow2-cluster: Fix integer left shift
From: |
Machine user for deployment to qemu organization |
Subject: |
[Qemu-commits] [qemu/qemu] 348fcc: qcow2-cluster: Fix integer left shift error in qco... |
Date: |
Wed, 05 Aug 2020 08:30:30 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 348fcc4f7ace1718006e646078d88c8cd8c1d97e
https://github.com/qemu/qemu/commit/348fcc4f7ace1718006e646078d88c8cd8c1d97e
Author: Tuguoyi <tu.guoyi@h3c.com>
Date: 2020-08-05 (Wed, 05 Aug 2020)
Changed paths:
M block/qcow2-cluster.c
Log Message:
-----------
qcow2-cluster: Fix integer left shift error in qcow2_alloc_cluster_link_l2()
When calculating the offset, the result of left shift operation will be promoted
to type int64 automatically because the left operand of + operator is uint64_t.
but the result after integer promotion may be produce an error value for us and
trigger the following asserting error.
For example, consider i=0x2000, cluster_bits=18, the result of left shift
operation will be 0x80000000. Cause argument i is of signed integer type,
the result is automatically promoted to 0xffffffff80000000 which is not
we expected
The way to trigger the assertion error:
qemu-img create -f qcow2 -o preallocation=full,cluster_size=256k tmpdisk 10G
This patch fix it by casting @i to uint64_t before doing left shift operation
Signed-off-by: Guoyi Tu <tu.guoyi@h3c.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Message-id: 81ba90fe0c014f269621c283269b42ad@h3c.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 348fcc: qcow2-cluster: Fix integer left shift error in qco...,
Machine user for deployment to qemu organization <=