bjori Wed May 7 20:02:42 2008 UTC
Modified files: (Branch: PHP_5_2)
/php-src/ext/standard streamsfuncs.c
Log:
MFH: Fixed bug #44712 (stream_context_set_params segfaults on invalid
arguments).
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.58.2.6.2.20&r2=1.58.2.6.2.21&diff_format=u
Index: php-src/ext/standard/streamsfuncs.c
diff -u php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.20
php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.21
--- php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.20 Sun May 4 21:19:18 2008
+++ php-src/ext/standard/streamsfuncs.c Wed May 7 20:02:42 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.c,v 1.58.2.6.2.20 2008/05/04 21:19:18 colder Exp $ */
+/* $Id: streamsfuncs.c,v 1.58.2.6.2.21 2008/05/07 20:02:42 bjori Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -879,7 +879,7 @@
return ret;
}
-static int parse_context_params(php_stream_context *context, zval *params)
+static int parse_context_params(php_stream_context *context, zval *params
TSRMLS_DC)
{
int ret = SUCCESS;
zval **tmp;
@@ -898,7 +898,11 @@
context->notifier->dtor = user_space_stream_notifier_dtor;
}
if (SUCCESS == zend_hash_find(Z_ARRVAL_P(params), "options",
sizeof("options"), (void**)&tmp)) {
- parse_context_options(context, *tmp);
+ if (Z_TYPE_PP(tmp) == IS_ARRAY) {
+ parse_context_options(context, *tmp);
+ } else {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid
stream/context parameter");
+ }
}
return ret;
@@ -1006,7 +1010,7 @@
RETURN_FALSE;
}
- RETVAL_BOOL(parse_context_params(context, params) == SUCCESS);
+ RETVAL_BOOL(parse_context_params(context, params TSRMLS_CC) == SUCCESS);
}
/* }}} */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php