lm32: milkymist-tmu2: fix a third integer overflow

Message ID 1487266008-13492-1-git-send-email-peter.maydell@linaro.org
State Superseded
Headers show

Commit Message

Peter Maydell Feb. 16, 2017, 5:26 p.m.
Don't truncate the multiplication and do a 64 bit one instead
because the result is stored in a 64 bit variable.

This fixes a similar coverity warning to commits 237a8650d640 and
4382fa655498, in a similar way, and is the final third of the fix for
coverity CID 1167561 (hopefully!).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
Third time lucky -- I checked and this is the last of these
multiply lines.

 hw/display/milkymist-tmu2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.7.4

Comments

Philippe Mathieu-Daudé Feb. 17, 2017, 11 p.m. | #1
On 02/16/2017 02:26 PM, Peter Maydell wrote:
> Don't truncate the multiplication and do a 64 bit one instead

> because the result is stored in a 64 bit variable.

>

> This fixes a similar coverity warning to commits 237a8650d640 and

> 4382fa655498, in a similar way, and is the final third of the fix for

> coverity CID 1167561 (hopefully!).

>

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


> ---

> Third time lucky -- I checked and this is the last of these

> multiply lines.

>

>  hw/display/milkymist-tmu2.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

>

> diff --git a/hw/display/milkymist-tmu2.c b/hw/display/milkymist-tmu2.c

> index 7528665..59120dd 100644

> --- a/hw/display/milkymist-tmu2.c

> +++ b/hw/display/milkymist-tmu2.c

> @@ -293,7 +293,7 @@ static void tmu2_start(MilkymistTMU2State *s)

>      cpu_physical_memory_unmap(mesh, mesh_len, 0, mesh_len);

>

>      /* Write back the OpenGL framebuffer to the QEMU framebuffer */

> -    fb_len = 2 * s->regs[R_DSTHRES] * s->regs[R_DSTVRES];

> +    fb_len = 2ULL * s->regs[R_DSTHRES] * s->regs[R_DSTVRES];

>      fb = cpu_physical_memory_map(s->regs[R_DSTFBUF], &fb_len, 1);

>      if (fb == NULL) {

>          glDeleteTextures(1, &texture);

>
Michael Walle Feb. 20, 2017, 8:41 a.m. | #2
Am 2017-02-18 00:00, schrieb Philippe Mathieu-Daudé:
> On 02/16/2017 02:26 PM, Peter Maydell wrote:

>> Don't truncate the multiplication and do a 64 bit one instead

>> because the result is stored in a 64 bit variable.

>> 

>> This fixes a similar coverity warning to commits 237a8650d640 and

>> 4382fa655498, in a similar way, and is the final third of the fix for

>> coverity CID 1167561 (hopefully!).

>> 

>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> 

> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


Acked-by: Michael Walle <michael@walle.cc>



> 

>> ---

>> Third time lucky -- I checked and this is the last of these

>> multiply lines.

>> 

>>  hw/display/milkymist-tmu2.c | 2 +-

>>  1 file changed, 1 insertion(+), 1 deletion(-)

>> 

>> diff --git a/hw/display/milkymist-tmu2.c b/hw/display/milkymist-tmu2.c

>> index 7528665..59120dd 100644

>> --- a/hw/display/milkymist-tmu2.c

>> +++ b/hw/display/milkymist-tmu2.c

>> @@ -293,7 +293,7 @@ static void tmu2_start(MilkymistTMU2State *s)

>>      cpu_physical_memory_unmap(mesh, mesh_len, 0, mesh_len);

>> 

>>      /* Write back the OpenGL framebuffer to the QEMU framebuffer */

>> -    fb_len = 2 * s->regs[R_DSTHRES] * s->regs[R_DSTVRES];

>> +    fb_len = 2ULL * s->regs[R_DSTHRES] * s->regs[R_DSTVRES];

>>      fb = cpu_physical_memory_map(s->regs[R_DSTFBUF], &fb_len, 1);

>>      if (fb == NULL) {

>>          glDeleteTextures(1, &texture);

>>
Michael Tokarev Feb. 21, 2017, 10:07 a.m. | #3
Applied to -trivial, thanks!

/mjt

Patch hide | download patch | download mbox

diff --git a/hw/display/milkymist-tmu2.c b/hw/display/milkymist-tmu2.c
index 7528665..59120dd 100644
--- a/hw/display/milkymist-tmu2.c
+++ b/hw/display/milkymist-tmu2.c
@@ -293,7 +293,7 @@  static void tmu2_start(MilkymistTMU2State *s)
     cpu_physical_memory_unmap(mesh, mesh_len, 0, mesh_len);
 
     /* Write back the OpenGL framebuffer to the QEMU framebuffer */
-    fb_len = 2 * s->regs[R_DSTHRES] * s->regs[R_DSTVRES];
+    fb_len = 2ULL * s->regs[R_DSTHRES] * s->regs[R_DSTVRES];
     fb = cpu_physical_memory_map(s->regs[R_DSTFBUF], &fb_len, 1);
     if (fb == NULL) {
         glDeleteTextures(1, &texture);