mirror of
https://github.com/php/php-src.git
synced 2024-12-11 19:04:38 +08:00
64 lines
1.0 KiB
C
64 lines
1.0 KiB
C
#include "php_config.h"
|
|
|
|
#ifdef HAVE_GD_PNG
|
|
/* needs to be first */
|
|
# include <png.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_GD_JPG
|
|
# include <jpeglib.h>
|
|
#endif
|
|
|
|
#include "gd_compat.h"
|
|
#include "php.h"
|
|
|
|
#ifdef HAVE_GD_JPG
|
|
int gdJpegGetVersionInt()
|
|
{
|
|
return JPEG_LIB_VERSION;
|
|
}
|
|
|
|
const char * gdJpegGetVersionString()
|
|
{
|
|
switch(JPEG_LIB_VERSION) {
|
|
case 62:
|
|
return "6b";
|
|
break;
|
|
|
|
case 70:
|
|
return "7";
|
|
break;
|
|
|
|
case 80:
|
|
return "8";
|
|
break;
|
|
|
|
default:
|
|
return "unknown";
|
|
}
|
|
}
|
|
#endif
|
|
|
|
#ifdef HAVE_GD_PNG
|
|
const char * gdPngGetVersionString()
|
|
{
|
|
return PNG_LIBPNG_VER_STRING;
|
|
}
|
|
#endif
|
|
|
|
int overflow2(int a, int b)
|
|
{
|
|
TSRMLS_FETCH();
|
|
|
|
if(a <= 0 || b <= 0) {
|
|
php_error_docref(NULL TSRMLS_CC, E_WARNING, "gd warning: one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully\n");
|
|
return 1;
|
|
}
|
|
if(a > INT_MAX / b) {
|
|
php_error_docref(NULL TSRMLS_CC, E_WARNING, "gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully\n");
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|