summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/base64.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/ext/standard/base64.c b/ext/standard/base64.c
index e2d93d1b25..a874337e9b 100644
--- a/ext/standard/base64.c
+++ b/ext/standard/base64.c
@@ -153,15 +153,14 @@ unsigned char *php_base64_decode(const unsigned char *str, int length, int *ret_
Encodes string using MIME base64 algorithm */
PHP_FUNCTION(base64_encode)
{
- pval **str;
+ char *str;
unsigned char *result;
- int ret_length;
+ int str_len, ret_length;
- if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &str) == FAILURE) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) == FAILURE) {
+ return;
}
- convert_to_string_ex(str);
- result = php_base64_encode(Z_STRVAL_PP(str), Z_STRLEN_PP(str), &ret_length);
+ result = php_base64_encode(str, str_len, &ret_length);
if (result != NULL) {
RETVAL_STRINGL(result, ret_length, 0);
} else {
@@ -175,15 +174,14 @@ PHP_FUNCTION(base64_encode)
Decodes string using MIME base64 algorithm */
PHP_FUNCTION(base64_decode)
{
- pval **str;
+ char *str;
unsigned char *result;
- int ret_length;
+ int str_len, ret_length;
- if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &str) == FAILURE) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) == FAILURE) {
+ return;
}
- convert_to_string_ex(str);
- result = php_base64_decode(Z_STRVAL_PP(str), Z_STRLEN_PP(str), &ret_length);
+ result = php_base64_decode(str, str_len, &ret_length);
if (result != NULL) {
RETVAL_STRINGL(result, ret_length, 0);
} else {