Message ID | 20241226095815.15377-1-tsogomonian@astralinux.ru (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | hw: cast 1 to 1ULL | expand |
On 26/12/24 10:58, Tigran Sogomonian wrote: > To prevent integer overflow it is worth casting 1 to 1ULL. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Signed-off-by: Tigran Sogomonian <tsogomonian@astralinux.ru> > --- > hw/misc/mps2-fpgaio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/misc/mps2-fpgaio.c b/hw/misc/mps2-fpgaio.c > index d07568248d..297cb1b602 100644 > --- a/hw/misc/mps2-fpgaio.c > +++ b/hw/misc/mps2-fpgaio.c > @@ -198,7 +198,7 @@ static void mps2_fpgaio_write(void *opaque, hwaddr offset, uint64_t value, > > s->led0 = value & MAKE_64BIT_MASK(0, s->num_leds); > for (i = 0; i < s->num_leds; i++) { > - led_set_state(s->led[i], value & (1 << i)); > + led_set_state(s->led[i], value & (1ULL << i)); Let's use extract64() and call it a day? > } > } > break;
On 12/26/24 01:58, Tigran Sogomonian wrote: > To prevent integer overflow it is worth casting 1 to 1ULL. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Signed-off-by: Tigran Sogomonian <tsogomonian@astralinux.ru> > --- > hw/misc/mps2-fpgaio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/misc/mps2-fpgaio.c b/hw/misc/mps2-fpgaio.c > index d07568248d..297cb1b602 100644 > --- a/hw/misc/mps2-fpgaio.c > +++ b/hw/misc/mps2-fpgaio.c > @@ -198,7 +198,7 @@ static void mps2_fpgaio_write(void *opaque, hwaddr offset, uint64_t value, > > s->led0 = value & MAKE_64BIT_MASK(0, s->num_leds); > for (i = 0; i < s->num_leds; i++) { > - led_set_state(s->led[i], value & (1 << i)); > + led_set_state(s->led[i], value & (1ULL << i)); > } > } > break; s->num_leds is bounded by MPS2FPGAIO_MAX_LEDS, which is 32. There is no possible integer overflow here. Please give more than a cursory look at the code. r~
diff --git a/hw/misc/mps2-fpgaio.c b/hw/misc/mps2-fpgaio.c index d07568248d..297cb1b602 100644 --- a/hw/misc/mps2-fpgaio.c +++ b/hw/misc/mps2-fpgaio.c @@ -198,7 +198,7 @@ static void mps2_fpgaio_write(void *opaque, hwaddr offset, uint64_t value, s->led0 = value & MAKE_64BIT_MASK(0, s->num_leds); for (i = 0; i < s->num_leds; i++) { - led_set_state(s->led[i], value & (1 << i)); + led_set_state(s->led[i], value & (1ULL << i)); } } break;
To prevent integer overflow it is worth casting 1 to 1ULL. Found by Linux Verification Center (linuxtesting.org) with SVACE. Signed-off-by: Tigran Sogomonian <tsogomonian@astralinux.ru> --- hw/misc/mps2-fpgaio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)