cvs: gd /libgd gd.c /libgd/tests CMakeLists.txt /libgd/tests/gdimagecolortransparent CMakeLists.txt gdimagecolortransparent.c
[email protected] ("Mattias Bengtsson") Sun, 09 Sep 2007 13:14:25 -0000
| Newsgroups | php.gd.cvs |
|---|---|
| Message-ID | <cvsmattias1189343665@cvsserver> |
mattias Sun Sep 9 13:14:25 2007 UTC
Modified files:
/gd/libgd gd.c
/gd/libgd/tests CMakeLists.txt
/gd/libgd/tests/gdimagecolortransparent gdimagecolortransparent.c
CMakeLists.txt
Log:
-MFB, #113, gdImageColorTransparent can write outside buffer
http://cvs.php.net/viewvc.cgi/gd/libgd/gd.c?r1=1.71&r2=1.72&diff_format=u
Index: gd/libgd/gd.c
diff -u gd/libgd/gd.c:1.71 gd/libgd/gd.c:1.72
--- gd/libgd/gd.c:1.71 Sat Sep 1 12:35:18 2007
+++ gd/libgd/gd.c Sun Sep 9 13:14:25 2007
@@ -1,4 +1,4 @@
-/* $Id: gd.c,v 1.71 2007/09/01 12:35:18 mattias Exp $ */
+/* $Id: gd.c,v 1.72 2007/09/09 13:14:25 mattias Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -600,6 +600,9 @@
{
if (!im->trueColor)
{
+ if((color < -1) || (color >= gdMaxColors)) {
+ return;
+ }
if (im->transparent != -1)
{
im->alpha[im->transparent] = gdAlphaOpaque;
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/CMakeLists.txt?r1=1.3&r2=1.4&diff_format=u
Index: gd/libgd/tests/CMakeLists.txt
diff -u gd/libgd/tests/CMakeLists.txt:1.3 gd/libgd/tests/CMakeLists.txt:1.4
--- gd/libgd/tests/CMakeLists.txt:1.3 Fri Aug 31 07:43:58 2007
+++ gd/libgd/tests/CMakeLists.txt Sun Sep 9 13:14:25 2007
@@ -33,6 +33,7 @@
gdimagecolorexact
gdimagecolorresolve
gdimagecolordeallocate
+ gdimagecolortransparent
#gdimageellipse
gdimageline
gdimagefilledellipse
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gdimagecolortransparent/gdimagecolortransparent.c?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/gdimagecolortransparent/gdimagecolortransparent.c
diff -u /dev/null gd/libgd/tests/gdimagecolortransparent/gdimagecolortransparent.c:1.2
--- /dev/null Sun Sep 9 13:14:25 2007
+++ gd/libgd/tests/gdimagecolortransparent/gdimagecolortransparent.c Sun Sep 9 13:14:25 2007
@@ -0,0 +1,31 @@
+#include <gd.h>
+#include <stdio.h>
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ int error = 0, pos;
+
+ pos = gdMaxColors;
+
+ im = gdImageCreate(1,1);
+
+ gdImageColorTransparent(im, pos);
+
+ if(im->transparent == pos) {
+ error = -1;
+ }
+
+ pos = -2;
+
+ gdImageColorTransparent(im, pos);
+
+ if(im->transparent == pos) {
+ error = -1;
+ }
+
+ gdImageDestroy(im);
+
+ return error;
+}
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gdimagecolortransparent/CMakeLists.txt?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/gdimagecolortransparent/CMakeLists.txt
diff -u /dev/null gd/libgd/tests/gdimagecolortransparent/CMakeLists.txt:1.2
--- /dev/null Sun Sep 9 13:14:25 2007
+++ gd/libgd/tests/gdimagecolortransparent/CMakeLists.txt Sun Sep 9 13:14:25 2007
@@ -0,0 +1,9 @@
+SET(TESTS_FILES
+ gdimagecolortransparent
+)
+
+FOREACH(test_name ${TESTS_FILES})
+ add_executable(${test_name} "${test_name}.c")
+ target_link_libraries (${test_name} gdTest ${GD_LIB})
+ ADD_TEST("${test_name}" ${EXECUTABLE_OUTPUT_PATH}/${test_name})
+ENDFOREACH(test_name)