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: