pollita Thu Jun 19 18:30:54 2003 EDT Modified files: /php4/ext/standard streamsfuncs.c Log: Quiet down decode_context_param when stream (not context) is passed. Switch stream_socket_*() to use macro for retrieving context from zval. Index: php4/ext/standard/streamsfuncs.c diff -u php4/ext/standard/streamsfuncs.c:1.21 php4/ext/standard/streamsfuncs.c:1.22 --- php4/ext/standard/streamsfuncs.c:1.21 Thu Jun 19 17:04:43 2003 +++ php4/ext/standard/streamsfuncs.c Thu Jun 19 18:30:54 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streamsfuncs.c,v 1.21 2003/06/19 21:04:43 iliaa Exp $ */ +/* $Id: streamsfuncs.c,v 1.22 2003/06/19 22:30:54 pollita Exp $ */ #include "php.h" #include "php_globals.h" @@ -64,9 +64,7 @@ RETURN_FALSE; } - if (zcontext) { - context = decode_context_param(zcontext TSRMLS_CC); - } + context = php_stream_context_from_zval(zcontext, flags & PHP_FILE_NO_DEFAULT_CONTEXT); if (flags & PHP_STREAM_CLIENT_PERSISTENT) { spprintf(&hashkey, 0, "stream_socket_client__%s", host); @@ -149,9 +147,7 @@ RETURN_FALSE; } - if (zcontext) { - context = decode_context_param(zcontext TSRMLS_CC); - } + context = php_stream_context_from_zval(zcontext, flags & PHP_FILE_NO_DEFAULT_CONTEXT); if (zerrno) { zval_dtor(zerrno); @@ -698,15 +694,19 @@ { php_stream_context *context = NULL; - context = zend_fetch_resource(&contextresource TSRMLS_CC, -1, "Stream-Context", NULL, 1, php_le_stream_context()); + context = zend_fetch_resource(&contextresource TSRMLS_CC, -1, NULL, NULL, 1, php_le_stream_context()); if (context == NULL) { php_stream *stream; - php_stream_from_zval_no_verify(stream, &contextresource); + stream = zend_fetch_resource(&contextresource TSRMLS_CC, -1, NULL, NULL, 2, php_file_le_stream(), php_file_le_pstream); if (stream) { context = stream->context; if (context == NULL) { + /* Only way this happens is if file is opened with NO_DEFAULT_CONTEXT + param, but then something is called which requires a context. + Don't give them the default one though since they already said they + didn't want it. */ context = stream->context = php_stream_context_alloc(); } } @@ -727,7 +727,10 @@ RETURN_FALSE; } context = decode_context_param(zcontext TSRMLS_CC); - ZEND_VERIFY_RESOURCE(context); + if (!context) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid stream/context parameter."); + RETURN_FALSE; + } *return_value = *context->options; zval_copy_ctor(return_value); @@ -756,7 +759,10 @@ /* figure out where the context is coming from exactly */ context = decode_context_param(zcontext TSRMLS_CC); - ZEND_VERIFY_RESOURCE(context); + if (!context) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid stream/context parameter."); + RETURN_FALSE; + } if (options) { /* handle the array syntax */ @@ -780,7 +786,10 @@ } context = decode_context_param(zcontext TSRMLS_CC); - ZEND_VERIFY_RESOURCE(context); + if (!context) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid stream/context parameter."); + RETURN_FALSE; + } RETVAL_BOOL(parse_context_params(context, params) == SUCCESS); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php