diff --git a/ext/gd/libgd/gd.c b/ext/gd/libgd/gd.c index 00b5c99a734..30e0d78e2d3 100644 --- a/ext/gd/libgd/gd.c +++ b/ext/gd/libgd/gd.c @@ -1665,20 +1665,29 @@ void gdImageFilledArc (gdImagePtr im, int cx, int cy, int w, int h, int s, int e int lx = 0, ly = 0; int fx = 0, fy = 0; - if (s > 360) { - s = s % 360; - } - if (e > 360) { - e = e % 360; - } + if (s == e) { + s = 0; e = 360; + } else { - while (s<0) { - s += 360; - } + if (s > 360) { + s = s % 360; + } - while (e < s) { - e += 360; + if (e > 360) { + e = e % 360; + } + + while (s < 0) { + s += 360; + } + + while (e < s) { + e += 360; + } + if (s == e) { + s = 0; e = 360; + } } for (i = s; i <= e; i++) {