From: James Moore Date: Mon, 21 May 2001 21:06:08 +0000 (+0000) Subject: Fix for #8539 X-Git-Tag: PRE_GRANULAR_GARBAGE_FIX~295 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b68965f62faf3f103b195ecb0f449af4c6f0785d;p=php Fix for #8539 --- diff --git a/ext/cpdf/cpdf.c b/ext/cpdf/cpdf.c index 628e18effd..67f7d307d8 100644 --- a/ext/cpdf/cpdf.c +++ b/ext/cpdf/cpdf.c @@ -40,6 +40,7 @@ #include "php.h" #include "php_globals.h" +#include "zend/zend_list.h" #include "ext/standard/php_standard.h" #include "ext/standard/head.h" #include @@ -66,6 +67,9 @@ static int numthreads=0; typedef struct cpdflib_global_struct{ int le_cpdf; int le_outline; +#if HAVE_LIBGD13 + int le_gd; +#endif } cpdflib_global_struct; # define CPDF_GLOBAL(a) cpdflib_globals->a @@ -76,6 +80,9 @@ typedef struct cpdflib_global_struct{ # define CPDF_TLS_VARS static int le_cpdf; static int le_outline; +#if HAVE_LIBGD13 +static int le_gd; +#endif #endif function_entry cpdf_functions[] = { @@ -2480,7 +2487,14 @@ PHP_FUNCTION(cpdf_place_inline_image) { gid=argv[1]->value.lval; im = zend_list_find(gid, &type); - if (!im || type != phpi_get_le_gd()) { + + ZEND_GET_RESOURCE_TYPE_ID(CPDF_GLOBAL(le_gd),"gd"); + if(!CPDF_GLOBAL(le_gd)) + { + php_error(E_ERROR, "Unable to find handle for GD image stream. Please check the GD extension is loaded."); + } + + if (!im || type != CPDF_GLOBAL(le_gd)) { php_error(E_WARNING, "cpdf: Unable to find image pointer"); RETURN_FALSE; } diff --git a/ext/pdf/pdf.c b/ext/pdf/pdf.c index d908dadac6..f33ce05172 100644 --- a/ext/pdf/pdf.c +++ b/ext/pdf/pdf.c @@ -27,6 +27,7 @@ #include "php.h" #include "php_ini.h" #include "php_globals.h" +#include "zend/zend_list.h" #include "ext/standard/head.h" #include "ext/standard/info.h" #include "ext/standard/file.h" @@ -34,6 +35,7 @@ #if HAVE_LIBGD13 #include "ext/gd/php_gd.h" #include "gd.h" +static int le_gd; #endif #ifdef HAVE_UNISTD_H @@ -1897,7 +1899,12 @@ PHP_FUNCTION(pdf_open_memory_image) } ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - ZEND_FETCH_RESOURCE(im, gdImagePtr, arg2, -1, "Image", phpi_get_le_gd()); + ZEND_GET_RESOURCE_TYPE_ID(le_gd,"gd"); + if(!le_gd) + { + php_error(E_ERROR, "Unable to find handle for GD image stream. Please check the GD extension is loaded."); + } + ZEND_FETCH_RESOURCE(im, gdImagePtr, arg2, -1, "Image", le_gd); count = 3 * im->sx * im->sy; if(NULL == (buffer = (unsigned char *) emalloc(count))) {