@@ -133,6 +133,10 @@ gdImagePtr gdImageCreate (int sx, int sy)
133
133
return NULL ;
134
134
}
135
135
136
+ if (overflow2 (sizeof (unsigned char * ), sx )) {
137
+ return NULL ;
138
+ }
139
+
136
140
im = (gdImage * ) gdCalloc (1 , sizeof (gdImage ));
137
141
138
142
/* Row-major ever since gd 1.3 */
@@ -1098,12 +1102,12 @@ void gdImageLine (gdImagePtr im, int x1, int y1, int x2, int y2, int color)
1098
1102
int thick = im -> thick ;
1099
1103
1100
1104
if (color == gdAntiAliased ) {
1101
- /*
1105
+ /*
1102
1106
gdAntiAliased passed as color: use the much faster, much cheaper
1103
1107
and equally attractive gdImageAALine implementation. That
1104
1108
clips too, so don't clip twice.
1105
1109
*/
1106
- gdImageAALine (im , x1 , y1 , x2 , y2 , im -> AA_color );
1110
+ gdImageAALine (im , x1 , y1 , x2 , y2 , im -> AA_color );
1107
1111
return ;
1108
1112
}
1109
1113
@@ -1880,7 +1884,7 @@ void gdImageFill(gdImagePtr im, int x, int y, int nc)
1880
1884
return ;
1881
1885
}
1882
1886
1883
- alphablending_bak = im -> alphaBlendingFlag ;
1887
+ alphablending_bak = im -> alphaBlendingFlag ;
1884
1888
im -> alphaBlendingFlag = 0 ;
1885
1889
1886
1890
if (nc == gdTiled ){
@@ -1892,7 +1896,7 @@ void gdImageFill(gdImagePtr im, int x, int y, int nc)
1892
1896
wx2 = im -> sx ;wy2 = im -> sy ;
1893
1897
oc = gdImageGetPixel (im , x , y );
1894
1898
if (oc == nc || x < 0 || x > wx2 || y < 0 || y > wy2 ) {
1895
- im -> alphaBlendingFlag = alphablending_bak ;
1899
+ im -> alphaBlendingFlag = alphablending_bak ;
1896
1900
return ;
1897
1901
}
1898
1902
@@ -1955,7 +1959,7 @@ skip: for (x++; x<=x2 && (gdImageGetPixel(im, x, y)!=oc); x++);
1955
1959
efree (stack );
1956
1960
1957
1961
done :
1958
- im -> alphaBlendingFlag = alphablending_bak ;
1962
+ im -> alphaBlendingFlag = alphablending_bak ;
1959
1963
}
1960
1964
1961
1965
static void _gdImageFillTiled (gdImagePtr im , int x , int y , int nc )
@@ -2061,7 +2065,7 @@ void gdImageRectangle (gdImagePtr im, int x1, int y1, int x2, int y2, int color)
2061
2065
2062
2066
x1ul = x1 - half ;
2063
2067
y1ul = y1 - half ;
2064
-
2068
+
2065
2069
x2lr = x2 + half ;
2066
2070
y2lr = y2 + half ;
2067
2071
@@ -2259,7 +2263,7 @@ void gdImageCopyMerge (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int s
2259
2263
int tox , toy ;
2260
2264
int ncR , ncG , ncB ;
2261
2265
toy = dstY ;
2262
-
2266
+
2263
2267
for (y = srcY ; y < (srcY + h ); y ++ ) {
2264
2268
tox = dstX ;
2265
2269
for (x = srcX ; x < (srcX + w ); x ++ ) {
@@ -2356,7 +2360,7 @@ void gdImageCopyResized (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int
2356
2360
int colorMap [gdMaxColors ];
2357
2361
/* Stretch vectors */
2358
2362
int * stx , * sty ;
2359
-
2363
+
2360
2364
if (overflow2 (sizeof (int ), srcW )) {
2361
2365
return ;
2362
2366
}
@@ -2901,7 +2905,7 @@ int gdAlphaBlend (int dst, int src) {
2901
2905
src_weight = gdAlphaTransparent - src_alpha ;
2902
2906
dst_weight = (gdAlphaTransparent - dst_alpha ) * src_alpha / gdAlphaMax ;
2903
2907
tot_weight = src_weight + dst_weight ;
2904
-
2908
+
2905
2909
/* -------------------------------------------------------------------- */
2906
2910
/* What red, green and blue result values will we use? */
2907
2911
/* -------------------------------------------------------------------- */
0 commit comments