summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/filters.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/ext/standard/filters.c b/ext/standard/filters.c
index edb0bc15f0..24aee7cfc3 100644
--- a/ext/standard/filters.c
+++ b/ext/standard/filters.c
@@ -1661,6 +1661,11 @@ static php_stream_filter *strfilter_convert_create(const char *filtername, zval
char *dot;
int conv_mode;
+ if (filterparams != NULL && Z_TYPE_P(filterparams) != IS_ARRAY) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "stream filter (%s): invalid filter parameter", filtername);
+ return NULL;
+ }
+
if ((dot = strchr(filtername, '.')) == NULL) {
return NULL;
}
@@ -1668,10 +1673,6 @@ static php_stream_filter *strfilter_convert_create(const char *filtername, zval
inst = pemalloc(sizeof(php_convert_filter), persistent);
- if (Z_TYPE_P(filterparams) != IS_ARRAY) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "stream filter (%s): invalid filter parameter", filtername);
- }
-
if (strcasecmp(dot, "base64-encode") == 0) {
conv_mode = PHP_CONV_BASE64_ENCODE;
} else if (strcasecmp(dot, "base64-decode") == 0) {