[PATCH 4/6] tests/qtest/pflash-cfi02-test: Avoid potential integer overflow

Peter Maydell posted 6 patches 4 years, 1 month ago
Maintainers: Igor Mammedov <imammedo@redhat.com>, Stefan Berger <stefanb@linux.vnet.ibm.com>, "Michael S. Tsirkin" <mst@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Thomas Huth <thuth@redhat.com>, Laurent Vivier <lvivier@redhat.com>
[PATCH 4/6] tests/qtest/pflash-cfi02-test: Avoid potential integer overflow
Posted by Peter Maydell 4 years, 1 month ago
Coverity points out that we calculate a 64-bit value using 32-bit
arithmetic; add the cast to force the multiply to be done as 64-bits.
(The overflow will never happen with the current test data.)

Fixes: Coverity CID 1432320
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 tests/qtest/pflash-cfi02-test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/qtest/pflash-cfi02-test.c b/tests/qtest/pflash-cfi02-test.c
index 60db81a3a2b..6168edc821a 100644
--- a/tests/qtest/pflash-cfi02-test.c
+++ b/tests/qtest/pflash-cfi02-test.c
@@ -406,7 +406,7 @@ static void test_geometry(const void *opaque)
 
     for (int region = 0; region < nb_erase_regions; ++region) {
         for (uint32_t i = 0; i < c->nb_blocs[region]; ++i) {
-            uint64_t byte_addr = i * c->sector_len[region];
+            uint64_t byte_addr = (uint64_t)i * c->sector_len[region];
             g_assert_cmphex(flash_read(c, byte_addr), ==, bank_mask(c));
         }
     }
-- 
2.20.1


Re: [PATCH 4/6] tests/qtest/pflash-cfi02-test: Avoid potential integer overflow
Posted by Philippe Mathieu-Daudé 4 years, 1 month ago
On 5/25/21 3:44 PM, Peter Maydell wrote:
> Coverity points out that we calculate a 64-bit value using 32-bit
> arithmetic; add the cast to force the multiply to be done as 64-bits.
> (The overflow will never happen with the current test data.)
> 
> Fixes: Coverity CID 1432320
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  tests/qtest/pflash-cfi02-test.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>


Re: [PATCH 4/6] tests/qtest/pflash-cfi02-test: Avoid potential integer overflow
Posted by Stefan Berger 4 years, 1 month ago
On 5/25/21 9:44 AM, Peter Maydell wrote:
> Coverity points out that we calculate a 64-bit value using 32-bit
> arithmetic; add the cast to force the multiply to be done as 64-bits.
> (The overflow will never happen with the current test data.)
>
> Fixes: Coverity CID 1432320
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>


> ---
>   tests/qtest/pflash-cfi02-test.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/qtest/pflash-cfi02-test.c b/tests/qtest/pflash-cfi02-test.c
> index 60db81a3a2b..6168edc821a 100644
> --- a/tests/qtest/pflash-cfi02-test.c
> +++ b/tests/qtest/pflash-cfi02-test.c
> @@ -406,7 +406,7 @@ static void test_geometry(const void *opaque)
>
>       for (int region = 0; region < nb_erase_regions; ++region) {
>           for (uint32_t i = 0; i < c->nb_blocs[region]; ++i) {
> -            uint64_t byte_addr = i * c->sector_len[region];
> +            uint64_t byte_addr = (uint64_t)i * c->sector_len[region];
>               g_assert_cmphex(flash_read(c, byte_addr), ==, bank_mask(c));
>           }
>       }