hholzgra Wed May 28 05:44:27 2003 EDT Modified files: (Branch: PHP_4) /php4/ext/fdf fdf.c Log: MFH Index: php4/ext/fdf/fdf.c diff -u php4/ext/fdf/fdf.c:1.66.2.2.2.1 php4/ext/fdf/fdf.c:1.66.2.2.2.2 --- php4/ext/fdf/fdf.c:1.66.2.2.2.1 Fri May 9 05:47:13 2003 +++ php4/ext/fdf/fdf.c Wed May 28 05:44:27 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: fdf.c,v 1.66.2.2.2.1 2003/05/09 09:47:13 hholzgra Exp $ */ +/* $Id: fdf.c,v 1.66.2.2.2.2 2003/05/28 09:44:27 hholzgra Exp $ */ /* FdfTk lib 2.0 is a Complete C/C++ FDF Toolkit available from http://beta1.adobe.com/ada/acrosdk/forms.html. */ @@ -125,10 +125,17 @@ fdf_post_handler }; +static void php_fdf_init_globals(zend_fdf_globals *fdf_globals) +{ + memset(fdf_globals, 0, sizeof(*fdf_globals)); +} + /* {{{ PHP_MINIT_FUNCTION */ PHP_MINIT_FUNCTION(fdf) { + ZEND_INIT_MODULE_GLOBALS(fdf, php_fdf_init_globals, NULL); + le_fdf = zend_register_list_destructors_ex(phpi_FDFClose, NULL, "fdf", module_number); /* add handler for Acrobat FDF form post requests */ @@ -177,8 +184,8 @@ /* }}} */ /* {{{ RINIT */ -PHP_RINIT_FUNCTION(fdf) { - FDF_G(error) = FDFErcOK; +PHP_RINIT_FUNCTION(fdf) +{ return SUCCESS; } /* }}} */ @@ -224,6 +231,10 @@ convert_to_string_ex(file); + if (php_check_open_basedir(Z_STRVAL_PP(file) TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(Z_STRVAL_PP(file), "wb+", CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } + err = FDFOpen(Z_STRVAL_PP(file), 0, &fdf); if(err != FDFErcOK || !fdf) { @@ -511,6 +522,11 @@ convert_to_string_ex(fieldname); convert_to_long_ex(face); convert_to_string_ex(filename); + + if (php_check_open_basedir(Z_STRVAL_PP(filename) TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(Z_STRVAL_PP(filename), "wb+", CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } + convert_to_long_ex(pagenr); switch(Z_LVAL_PP(face)) { @@ -562,6 +578,10 @@ ZEND_FETCH_RESOURCE(fdf, FDFDoc *, &r_fdf, -1, "fdf", le_fdf); + if (php_check_open_basedir(filename TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(filename, "wb+", CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } + switch(face) { case 1: facenr = FDFNormalAP; @@ -771,6 +791,9 @@ ZEND_FETCH_RESOURCE(fdf, FDFDoc *, &r_fdf, -1, "fdf", le_fdf); if(filename) { + if (php_check_open_basedir(filename TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(filename, "wb+", CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } err = FDFSave(fdf, filename); } else { FILE *fp; @@ -884,6 +907,10 @@ convert_to_string_ex(filename); convert_to_string_ex(template); convert_to_long_ex(rename); + + if (php_check_open_basedir(Z_STRVAL_PP(filename) TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(Z_STRVAL_PP(filename), "wb+", CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } filespec.FS = NULL; filespec.F = Z_STRVAL_PP(filename);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php