mirror of https://gitlab.com/qemu-project/qemu
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
In of_dpa_mask2prefix() we do "(2 << i)" for a loop where i can go up to 31. At i == 31 we shift off the top end of an integer. This doesn't actually calculate the wrong value in practice, because we calculate 0 - 1 which is the 0xffffffff mask we wanted (and for QEMU shifting off the top of a signed integer is not UB); but it makes Coverity complain. We could fix this simply by using "2ULL" (where the "(2ULL << i) - 1" expression also evaluates to 0xffffffff for i == 31), but in fact this function is a slow looping implementation of counting the number of trailing zeroes in the (network-order) input mask: 0bxxxxxxxxx1 => 32 0bxxxxxxxx10 => 31 0bxxxxxxx100 => 30 ... 0bx100000000 => 2 0b1000000000 => 1 0b0000000000 => 0 Replace the implementation with 32 - ctz32(). Coverity: CID 1547602 Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20251016145407.781978-1-peter.maydell@linaro.org |
3 weeks ago | |
|---|---|---|
| .. | ||
| qmp-norocker.c | 3 years ago | |
| rocker-hmp-cmds.c | 9 months ago | |
| rocker.c | 7 months ago | |
| rocker.h | 6 months ago | |
| rocker_desc.c | 3 years ago | |
| rocker_desc.h | ||
| rocker_fp.c | 2 years ago | |
| rocker_fp.h | 5 years ago | |
| rocker_hw.h | 6 months ago | |
| rocker_of_dpa.c | 3 weeks ago | |
| rocker_of_dpa.h | ||
| rocker_tlv.h | ||
| rocker_world.c | 8 years ago | |
| rocker_world.h | ||