felipe Fri May 16 12:11:15 2008 UTC
Modified files:
/php-src/ext/standard dl.c dl.h
Log:
- Improved fix (used 's' in parameter parsing)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/dl.c?r1=1.126&r2=1.127&diff_format=u
Index: php-src/ext/standard/dl.c
diff -u php-src/ext/standard/dl.c:1.126 php-src/ext/standard/dl.c:1.127
--- php-src/ext/standard/dl.c:1.126 Fri May 16 03:11:56 2008
+++ php-src/ext/standard/dl.c Fri May 16 12:11:15 2008
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: dl.c,v 1.126 2008/05/16 03:11:56 felipe Exp $ */
+/* $Id: dl.c,v 1.127 2008/05/16 12:11:15 felipe Exp $ */
#include "php.h"
#include "dl.h"
@@ -54,15 +54,14 @@
Load a PHP extension at runtime */
PHP_FUNCTION(dl)
{
- zval *filename;
+ char *filename;
+ int filename_len;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z/", &filename)
== FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s&", &filename,
&filename_len, ZEND_U_CONVERTER(UG(filesystem_encoding_conv))) == FAILURE) {
return;
}
-
- convert_to_string(filename);
- if (Z_STRLEN_P(filename) >= MAXPATHLEN) {
+ if (filename_len >= MAXPATHLEN) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "File name exceeds
the maximum allowed length of %d characters", MAXPATHLEN);
RETURN_FALSE;
}
@@ -72,10 +71,10 @@
(strncmp(sapi_module.name, "embed", 5) != 0)
) {
#ifdef ZTS
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not supported in
multithreaded Web servers - use extension=%s in your php.ini",
Z_STRVAL_P(filename));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not supported in
multithreaded Web servers - use extension=%s in your php.ini", filename);
RETURN_FALSE;
#else
- php_error_docref(NULL TSRMLS_CC, E_DEPRECATED, "dl() is
deprecated - use extension=%s in your php.ini", Z_STRVAL_P(filename));
+ php_error_docref(NULL TSRMLS_CC, E_DEPRECATED, "dl() is
deprecated - use extension=%s in your php.ini", filename);
#endif
}
@@ -243,29 +242,14 @@
/* {{{ php_dl
*/
-PHPAPI void php_dl(zval *file, int type, zval *return_value, int start_now
TSRMLS_DC)
+PHPAPI void php_dl(char *file, int type, zval *return_value, int start_now
TSRMLS_DC)
{
- char *filename;
- int filename_len;
-
- if (Z_TYPE_P(file) == IS_UNICODE) {
- if (FAILURE == php_stream_path_encode(NULL, &filename,
&filename_len, Z_USTRVAL_P(file), Z_USTRLEN_P(file), REPORT_ERRORS,
FG(default_context))) {
- return;
- }
- } else {
- filename = Z_STRVAL_P(file);
- }
-
/* Load extension */
- if (php_load_extension(filename, type, start_now TSRMLS_CC) == FAILURE)
{
+ if (php_load_extension(file, type, start_now TSRMLS_CC) == FAILURE) {
RETVAL_FALSE;
} else {
RETVAL_TRUE;
}
-
- if (Z_TYPE_P(file) == IS_UNICODE) {
- efree(filename);
- }
}
/* }}} */
@@ -276,9 +260,9 @@
#else
-PHPAPI void php_dl(zval *file, int type, zval *return_value, int start_now
TSRMLS_DC)
+PHPAPI void php_dl(char *file, int type, zval *return_value, int start_now
TSRMLS_DC)
{
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot dynamically load %R
- dynamic modules are not supported", Z_TYPE_P(file), Z_UNIVAL_P(file));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot dynamically load %s
- dynamic modules are not supported", file);
RETURN_FALSE;
}
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/dl.h?r1=1.28&r2=1.29&diff_format=u
Index: php-src/ext/standard/dl.h
diff -u php-src/ext/standard/dl.h:1.28 php-src/ext/standard/dl.h:1.29
--- php-src/ext/standard/dl.h:1.28 Mon Dec 31 07:12:15 2007
+++ php-src/ext/standard/dl.h Fri May 16 12:11:15 2008
@@ -18,13 +18,13 @@
+----------------------------------------------------------------------+
*/
-/* $Id: dl.h,v 1.28 2007/12/31 07:12:15 sebastian Exp $ */
+/* $Id: dl.h,v 1.29 2008/05/16 12:11:15 felipe Exp $ */
#ifndef DL_H
#define DL_H
PHPAPI int php_load_extension(char *filename, int type, int start_now
TSRMLS_DC);
-PHPAPI void php_dl(zval *file,int type, zval *return_value, int start_now
TSRMLS_DC);
+PHPAPI void php_dl(char *file, int type, zval *return_value, int start_now
TSRMLS_DC);
/* dynamic loading functions */
PHPAPI PHP_FUNCTION(dl);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php