cvs: php4 /ext/cpdf cpdf.c /ext/pdf pdf.c

From: Date: Wed, 21 May 2003 00:57:33 +0000
Subject: cvs: php4 /ext/cpdf cpdf.c /ext/pdf pdf.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-21161@lists.php.net to get a copy of this message
iliaa Tue May 20 20:57:33 2003 EDT Modified files: /php4/ext/cpdf cpdf.c /php4/ext/pdf pdf.c Log: Added missing safe_mode checks and corrected a typo in stdout check. Index: php4/ext/cpdf/cpdf.c diff -u php4/ext/cpdf/cpdf.c:1.50 php4/ext/cpdf/cpdf.c:1.51 --- php4/ext/cpdf/cpdf.c:1.50 Tue Jan 14 19:52:06 2003 +++ php4/ext/cpdf/cpdf.c Tue May 20 20:57:33 2003 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: cpdf.c,v 1.50 2003/01/15 00:52:06 iliaa Exp $ */ +/* $Id: cpdf.c,v 1.51 2003/05/21 00:57:33 iliaa Exp $ */ /* cpdflib.h -- C language API definitions for ClibPDF library * Copyright (C) 1998 FastIO Systems, All Rights Reserved. */ @@ -426,6 +426,11 @@ if(strcmp(Z_STRVAL_PP(arg2), "-") == 0) php_error_docref(NULL TSRMLS_CC, E_WARNING, "Writing to stdout as described in the ClibPDF manual is not possible if php is used as an Apache module. Write to a memory stream and use cpdf_output_buffer() instead."); #endif + + if (php_check_open_basedir(Z_STRVAL_PP(arg2) TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(Z_STRVAL_PP(arg2), "rb+", CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } + cpdf_setOutputFilename(cpdf, Z_STRVAL_PP(arg2)); } cpdf_init(cpdf); @@ -777,6 +782,10 @@ CPDF_FETCH_CPDFDOC(arg1); convert_to_string_ex(arg2); + if (php_check_open_basedir(Z_STRVAL_PP(arg2) TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(Z_STRVAL_PP(arg2), "rb+", CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } + cpdf_setFontMapFile(pdf, Z_STRVAL_PP(arg2)); RETURN_TRUE; @@ -1923,10 +1932,14 @@ convert_to_string_ex(arg2); #if APACHE - if(strcmp(Z_STRVAL_P(arg2), "-") == 0) + if(strcmp(Z_STRVAL_PP(arg2), "-") == 0) php_error_docref(NULL TSRMLS_CC, E_WARNING, "Writing to stdout as described in the ClibPDF manual is not possible if php is used as an Apache module. Use cpdf_output_buffer() instead."); #endif + if (php_check_open_basedir(Z_STRVAL_PP(arg2) TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(Z_STRVAL_PP(arg2), "wb+", CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } + cpdf_savePDFmemoryStreamToFile(pdf, Z_STRVAL_PP(arg2)); RETURN_TRUE; @@ -1948,6 +1961,11 @@ CPDF_FETCH_CPDFDOC(argv[0]); convert_to_string_ex(argv[1]); + + if (php_check_open_basedir(Z_STRVAL_PP(argv[1]) TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(Z_STRVAL_PP(argv[1]), "rb+", CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } + convert_to_double_ex(argv[2]); convert_to_double_ex(argv[3]); convert_to_double_ex(argv[4]); Index: php4/ext/pdf/pdf.c diff -u php4/ext/pdf/pdf.c:1.122 php4/ext/pdf/pdf.c:1.123 --- php4/ext/pdf/pdf.c:1.122 Mon May 19 20:36:59 2003 +++ php4/ext/pdf/pdf.c Tue May 20 20:57:33 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdf.c,v 1.122 2003/05/20 00:36:59 iliaa Exp $ */ +/* $Id: pdf.c,v 1.123 2003/05/21 00:57:33 iliaa Exp $ */ /* pdflib 2.02 ... 3.0x is subject to the ALADDIN FREE PUBLIC LICENSE. Copyright (C) 1997-1999 Thomas Merz. 2000-2001 PDFlib GmbH */ @@ -332,7 +332,7 @@ #else php_info_print_table_row(2, "PDFlib GmbH Version", tmp ); #endif - php_info_print_table_row(2, "Revision", "$Revision: 1.122 $" ); + php_info_print_table_row(2, "Revision", "$Revision: 1.123 $" ); php_info_print_table_end(); } @@ -2335,6 +2335,11 @@ if (argc == 2) { convert_to_string_ex(arg2); filename = Z_STRVAL_PP(arg2); + + if (php_check_open_basedir(filename TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(filename, "wb+", CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } + pdf_file = PDF_open_file(pdf, filename); } else { /* open in memory */

« previous php.cvs (#21161) next »