Hi,

this is really a stupid bug, the guy who designed gd_compat.[hc]
expected's that sizeof(int) == sizeof(const char*).
So he declared the gdJpegGetVersionString() as returns int instead of correctly
returning const char*. 
So all 64-bit systems must crash at this point, cause int's are 4bytes and 
pointer's are 8 bytes on those systems.

-- 
mit freundlichem Gruss -- regards

Thomas Drillich
--- php5-5.3.0/ext/gd/libgd/gd_compat.hgdJpegGetVersionString_returnsInt	2009-08-07 19:09:40.000000000 +0200
+++ php5-5.3.0/ext/gd/libgd/gd_compat.h	2009-08-07 19:09:54.000000000 +0200
@@ -8,7 +8,7 @@
 #endif
 
 const char * gdPngGetVersionString();
-int gdJpegGetVersionString();
+const char * gdJpegGetVersionString();
 int gdJpegGetVersionInt();
 int overflow2(int a, int b);
 
--- php5-5.3.0/ext/gd/libgd/gd_compat.c.gdJpegGetVersionString_returnsInt	2009-08-07 19:09:07.000000000 +0200
+++ php5-5.3.0/ext/gd/libgd/gd_compat.c	2009-08-07 19:10:11.000000000 +0200
@@ -14,7 +14,7 @@
 	return JPEG_LIB_VERSION;
 }
 
-int gdJpegGetVersionString()
+const char * gdJpegGetVersionString()
 {
 	switch(JPEG_LIB_VERSION) {
 		case 62:

Reply via email to