@@ -1836,8 +1836,8 @@ PHP_FUNCTION(imagelayereffect)
1836
1836
}
1837
1837
/* }}} */
1838
1838
1839
- #define CHECK_RGB_RANGE (component , name ) \
1840
- if (component < 0 || component > 255 ) { \
1839
+ #define CHECK_RGBA_RANGE (component , name ) \
1840
+ if (component < 0 || component > gd##name##Max ) { \
1841
1841
php_error_docref(NULL, E_WARNING, #name " component is out of range"); \
1842
1842
RETURN_FALSE; \
1843
1843
}
@@ -1859,9 +1859,10 @@ PHP_FUNCTION(imagecolorallocatealpha)
1859
1859
RETURN_FALSE ;
1860
1860
}
1861
1861
1862
- CHECK_RGB_RANGE (red , Red );
1863
- CHECK_RGB_RANGE (green , Green );
1864
- CHECK_RGB_RANGE (blue , Blue );
1862
+ CHECK_RGBA_RANGE (red , Red );
1863
+ CHECK_RGBA_RANGE (green , Green );
1864
+ CHECK_RGBA_RANGE (blue , Blue );
1865
+ CHECK_RGBA_RANGE (alpha , Alpha );
1865
1866
1866
1867
ct = gdImageColorAllocateAlpha (im , red , green , blue , alpha );
1867
1868
if (ct < 0 ) {
@@ -1887,6 +1888,11 @@ PHP_FUNCTION(imagecolorresolvealpha)
1887
1888
RETURN_FALSE ;
1888
1889
}
1889
1890
1891
+ CHECK_RGBA_RANGE (red , Red );
1892
+ CHECK_RGBA_RANGE (green , Green );
1893
+ CHECK_RGBA_RANGE (blue , Blue );
1894
+ CHECK_RGBA_RANGE (alpha , Alpha );
1895
+
1890
1896
RETURN_LONG (gdImageColorResolveAlpha (im , red , green , blue , alpha ));
1891
1897
}
1892
1898
/* }}} */
@@ -1907,6 +1913,11 @@ PHP_FUNCTION(imagecolorclosestalpha)
1907
1913
RETURN_FALSE ;
1908
1914
}
1909
1915
1916
+ CHECK_RGBA_RANGE (red , Red );
1917
+ CHECK_RGBA_RANGE (green , Green );
1918
+ CHECK_RGBA_RANGE (blue , Blue );
1919
+ CHECK_RGBA_RANGE (alpha , Alpha );
1920
+
1910
1921
RETURN_LONG (gdImageColorClosestAlpha (im , red , green , blue , alpha ));
1911
1922
}
1912
1923
/* }}} */
@@ -1927,6 +1938,11 @@ PHP_FUNCTION(imagecolorexactalpha)
1927
1938
RETURN_FALSE ;
1928
1939
}
1929
1940
1941
+ CHECK_RGBA_RANGE (red , Red );
1942
+ CHECK_RGBA_RANGE (green , Green );
1943
+ CHECK_RGBA_RANGE (blue , Blue );
1944
+ CHECK_RGBA_RANGE (alpha , Alpha );
1945
+
1930
1946
RETURN_LONG (gdImageColorExactAlpha (im , red , green , blue , alpha ));
1931
1947
}
1932
1948
/* }}} */
@@ -2868,9 +2884,9 @@ PHP_FUNCTION(imagecolorallocate)
2868
2884
RETURN_FALSE ;
2869
2885
}
2870
2886
2871
- CHECK_RGB_RANGE (red , Red );
2872
- CHECK_RGB_RANGE (green , Green );
2873
- CHECK_RGB_RANGE (blue , Blue );
2887
+ CHECK_RGBA_RANGE (red , Red );
2888
+ CHECK_RGBA_RANGE (green , Green );
2889
+ CHECK_RGBA_RANGE (blue , Blue );
2874
2890
2875
2891
ct = gdImageColorAllocate (im , red , green , blue );
2876
2892
if (ct < 0 ) {
@@ -2955,6 +2971,10 @@ PHP_FUNCTION(imagecolorclosest)
2955
2971
RETURN_FALSE ;
2956
2972
}
2957
2973
2974
+ CHECK_RGBA_RANGE (red , Red );
2975
+ CHECK_RGBA_RANGE (green , Green );
2976
+ CHECK_RGBA_RANGE (blue , Blue );
2977
+
2958
2978
RETURN_LONG (gdImageColorClosest (im , red , green , blue ));
2959
2979
}
2960
2980
/* }}} */
@@ -2975,6 +2995,10 @@ PHP_FUNCTION(imagecolorclosesthwb)
2975
2995
RETURN_FALSE ;
2976
2996
}
2977
2997
2998
+ CHECK_RGBA_RANGE (red , Red );
2999
+ CHECK_RGBA_RANGE (green , Green );
3000
+ CHECK_RGBA_RANGE (blue , Blue );
3001
+
2978
3002
RETURN_LONG (gdImageColorClosestHWB (im , red , green , blue ));
2979
3003
}
2980
3004
/* }}} */
@@ -3029,6 +3053,10 @@ PHP_FUNCTION(imagecolorresolve)
3029
3053
RETURN_FALSE ;
3030
3054
}
3031
3055
3056
+ CHECK_RGBA_RANGE (red , Red );
3057
+ CHECK_RGBA_RANGE (green , Green );
3058
+ CHECK_RGBA_RANGE (blue , Blue );
3059
+
3032
3060
RETURN_LONG (gdImageColorResolve (im , red , green , blue ));
3033
3061
}
3034
3062
/* }}} */
@@ -3049,6 +3077,10 @@ PHP_FUNCTION(imagecolorexact)
3049
3077
RETURN_FALSE ;
3050
3078
}
3051
3079
3080
+ CHECK_RGBA_RANGE (red , Red );
3081
+ CHECK_RGBA_RANGE (green , Green );
3082
+ CHECK_RGBA_RANGE (blue , Blue );
3083
+
3052
3084
RETURN_LONG (gdImageColorExact (im , red , green , blue ));
3053
3085
}
3054
3086
/* }}} */
@@ -3070,6 +3102,11 @@ PHP_FUNCTION(imagecolorset)
3070
3102
RETURN_FALSE ;
3071
3103
}
3072
3104
3105
+ CHECK_RGBA_RANGE (red , Red );
3106
+ CHECK_RGBA_RANGE (green , Green );
3107
+ CHECK_RGBA_RANGE (blue , Blue );
3108
+ CHECK_RGBA_RANGE (alpha , Alpha );
3109
+
3073
3110
col = color ;
3074
3111
3075
3112
if (col >= 0 && col < gdImageColorsTotal (im )) {
0 commit comments