gallium/hud: prevent an infinite loop
v2: use UINT64_MAX / 11 Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
24847dd1b5
commit
31e7ba7124
|
@ -731,9 +731,10 @@ hud_pane_set_max_value(struct hud_pane *pane, uint64_t value)
|
||||||
* hard-to-read numbers like 1.753.
|
* hard-to-read numbers like 1.753.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Find the left-most digit. */
|
/* Find the left-most digit. Make sure exp10 * 10 and fixup_bytes doesn't
|
||||||
|
* overflow. (11 is safe) */
|
||||||
exp10 = 1;
|
exp10 = 1;
|
||||||
for (i = 0; value > 9 * exp10; i++) {
|
for (i = 0; exp10 <= UINT64_MAX / 11 && exp10 * 9 < value; i++) {
|
||||||
exp10 *= 10;
|
exp10 *= 10;
|
||||||
fixup_bytes(pane->type, i + 1, &exp10);
|
fixup_bytes(pane->type, i + 1, &exp10);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue