diff options
Diffstat (limited to 'ext/standard/pack.c')
-rw-r--r-- | ext/standard/pack.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/ext/standard/pack.c b/ext/standard/pack.c index c9c118751b..86ff031dbb 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -462,15 +462,15 @@ PHP_FUNCTION(pack) case 'A': case 'Z': { size_t arg_cp = (code != 'Z') ? arg : MAX(0, arg - 1); - - zend_string *str = zval_get_string(&argv[currentarg++]); + zend_string *tmp_str; + zend_string *str = zval_get_tmp_string(&argv[currentarg++], &tmp_str); memset(&ZSTR_VAL(output)[outputpos], (code == 'a' || code == 'Z') ? '\0' : ' ', arg); memcpy(&ZSTR_VAL(output)[outputpos], ZSTR_VAL(str), (ZSTR_LEN(str) < arg_cp) ? ZSTR_LEN(str) : arg_cp); outputpos += arg; - zend_string_release(str); + zend_tmp_string_release(tmp_str); break; } @@ -478,8 +478,8 @@ PHP_FUNCTION(pack) case 'H': { int nibbleshift = (code == 'h') ? 0 : 4; int first = 1; - - zend_string *str = zval_get_string(&argv[currentarg++]); + zend_string *tmp_str; + zend_string *str = zval_get_tmp_string(&argv[currentarg++], &tmp_str); char *v = ZSTR_VAL(str); outputpos--; @@ -513,7 +513,7 @@ PHP_FUNCTION(pack) } outputpos++; - zend_string_release(str); + zend_tmp_string_release(tmp_str); break; } |