Skip to content

Commit

Permalink
[Bugfix] qp_ellipse overflow (qmk#19005)
Browse files Browse the repository at this point in the history
  • Loading branch information
elpekenin authored and Lorenzo Castoldi committed Dec 27, 2023
1 parent 5fa0267 commit e828518
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions quantum/painter/qp_draw_ellipse.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex,
return false;
}

int16_t aa = ((int16_t)sizex) * ((int16_t)sizex);
int16_t bb = ((int16_t)sizey) * ((int16_t)sizey);
int16_t fa = 4 * ((int16_t)aa);
int16_t fb = 4 * ((int16_t)bb);
int32_t aa = ((int32_t)sizex) * ((int32_t)sizex);
int32_t bb = ((int32_t)sizey) * ((int32_t)sizey);
int32_t fa = 4 * aa;
int32_t fb = 4 * bb;

int16_t dx = 0;
int16_t dy = ((int16_t)sizey);
Expand All @@ -83,7 +83,7 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex,
}

bool ret = true;
for (int16_t delta = (2 * bb) + (aa * (1 - (2 * sizey))); bb * dx <= aa * dy; dx++) {
for (int32_t delta = (2 * bb) + (aa * (1 - (2 * sizey))); bb * dx <= aa * dy; dx++) {
if (!qp_ellipse_helper_impl(device, x, y, dx, dy, filled)) {
ret = false;
break;
Expand All @@ -98,7 +98,7 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex,
dx = sizex;
dy = 0;

for (int16_t delta = (2 * aa) + (bb * (1 - (2 * sizex))); aa * dy <= bb * dx; dy++) {
for (int32_t delta = (2 * aa) + (bb * (1 - (2 * sizex))); aa * dy <= bb * dx; dy++) {
if (!qp_ellipse_helper_impl(device, x, y, dx, dy, filled)) {
ret = false;
break;
Expand Down

0 comments on commit e828518

Please sign in to comment.