Skip to content

Commit 83a0665

Browse files
author
foobar
committed
Fix bug: php#19355 (the parameter is optional)
1 parent 1f58a12 commit 83a0665

File tree

1 file changed

+13
-20
lines changed

1 file changed

+13
-20
lines changed

ext/iconv/iconv.c

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -367,35 +367,28 @@ PHP_FUNCTION(iconv_set_encoding)
367367
Get internal encoding and output encoding for ob_iconv_handler() */
368368
PHP_FUNCTION(iconv_get_encoding)
369369
{
370-
zval **type;
371-
int argc = ZEND_NUM_ARGS();
372-
373-
if (argc < 0 || argc > 1 || zend_get_parameters_ex(1, &type) == FAILURE) {
374-
WRONG_PARAM_COUNT;
375-
}
376-
377-
convert_to_string_ex(type);
378-
379-
if (argc == 0 || !strcasecmp("all", Z_STRVAL_PP(type))) {
370+
char *type = "all";
371+
int type_len;
372+
373+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &type, &type_len) == FAILURE)
374+
return;
375+
376+
if (!strcasecmp("all", type)) {
380377
if (array_init(return_value) == FAILURE) {
381378
RETURN_FALSE;
382379
}
383-
add_assoc_string(return_value, "input_encoding",
384-
ICONVG(input_encoding), 1);
385-
add_assoc_string(return_value, "output_encoding",
386-
ICONVG(output_encoding), 1);
387-
add_assoc_string(return_value, "internal_encoding",
388-
ICONVG(internal_encoding), 1);
389-
} else if (!strcasecmp("input_encoding", Z_STRVAL_PP(type))) {
380+
add_assoc_string(return_value, "input_encoding", ICONVG(input_encoding), 1);
381+
add_assoc_string(return_value, "output_encoding", ICONVG(output_encoding), 1);
382+
add_assoc_string(return_value, "internal_encoding", ICONVG(internal_encoding), 1);
383+
} else if (!strcasecmp("input_encoding", type)) {
390384
RETVAL_STRING(ICONVG(input_encoding), 1);
391-
} else if (!strcasecmp("output_encoding", Z_STRVAL_PP(type))) {
385+
} else if (!strcasecmp("output_encoding", type)) {
392386
RETVAL_STRING(ICONVG(output_encoding), 1);
393-
} else if (!strcasecmp("internal_encoding", Z_STRVAL_PP(type))) {
387+
} else if (!strcasecmp("internal_encoding", type)) {
394388
RETVAL_STRING(ICONVG(internal_encoding), 1);
395389
} else {
396390
RETURN_FALSE;
397391
}
398-
399392
}
400393
/* }}} */
401394

0 commit comments

Comments
 (0)