@@ -57,6 +57,7 @@ static void php_intl_idn_to_46(INTERNAL_FUNCTION_PARAMETERS,
5757 UErrorCode status = U_ZERO_ERROR ;
5858 UIDNA * uts46 ;
5959 int32_t len ;
60+ int32_t buffer_capac ;
6061 zend_string * buffer ;
6162 UIDNAInfo info = UIDNA_INFO_INITIALIZER ;
6263
@@ -66,25 +67,20 @@ static void php_intl_idn_to_46(INTERNAL_FUNCTION_PARAMETERS,
6667 }
6768
6869 if (mode == INTL_IDN_TO_ASCII ) {
69- const int32_t buffer_capac = 255 ;
70+ buffer_capac = 255 ;
7071 buffer = zend_string_alloc (buffer_capac , 0 );
7172 len = uidna_nameToASCII_UTF8 (uts46 , ZSTR_VAL (domain ), ZSTR_LEN (domain ),
7273 ZSTR_VAL (buffer ), buffer_capac , & info , & status );
73- if (len >= buffer_capac || php_intl_idn_check_status (status , "failed to convert name" ) == FAILURE ) {
74- uidna_close (uts46 );
75- zend_string_efree (buffer );
76- RETURN_FALSE ;
77- }
7874 } else {
79- const int32_t buffer_capac = 252 * 4 ;
75+ buffer_capac = 252 * 4 ;
8076 buffer = zend_string_alloc (buffer_capac , 0 );
8177 len = uidna_nameToUnicodeUTF8 (uts46 , ZSTR_VAL (domain ), ZSTR_LEN (domain ),
8278 ZSTR_VAL (buffer ), buffer_capac , & info , & status );
83- if ( len >= buffer_capac || php_intl_idn_check_status ( status , "failed to convert name" ) == FAILURE ) {
84- uidna_close ( uts46 );
85- zend_string_efree ( buffer );
86- RETURN_FALSE ;
87- }
79+ }
80+ if ( len >= buffer_capac || php_intl_idn_check_status ( status , "failed to convert name" ) == FAILURE ) {
81+ uidna_close ( uts46 );
82+ zend_string_efree ( buffer ) ;
83+ RETURN_FALSE ;
8884 }
8985
9086 ZSTR_VAL (buffer )[len ] = '\0' ;
0 commit comments