@@ -57,6 +57,7 @@ static void php_intl_idn_to_46(INTERNAL_FUNCTION_PARAMETERS,
57
57
UErrorCode status = U_ZERO_ERROR ;
58
58
UIDNA * uts46 ;
59
59
int32_t len ;
60
+ int32_t buffer_capac ;
60
61
zend_string * buffer ;
61
62
UIDNAInfo info = UIDNA_INFO_INITIALIZER ;
62
63
@@ -66,25 +67,20 @@ static void php_intl_idn_to_46(INTERNAL_FUNCTION_PARAMETERS,
66
67
}
67
68
68
69
if (mode == INTL_IDN_TO_ASCII ) {
69
- const int32_t buffer_capac = 255 ;
70
+ buffer_capac = 255 ;
70
71
buffer = zend_string_alloc (buffer_capac , 0 );
71
72
len = uidna_nameToASCII_UTF8 (uts46 , ZSTR_VAL (domain ), ZSTR_LEN (domain ),
72
73
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
- }
78
74
} else {
79
- const int32_t buffer_capac = 252 * 4 ;
75
+ buffer_capac = 252 * 4 ;
80
76
buffer = zend_string_alloc (buffer_capac , 0 );
81
77
len = uidna_nameToUnicodeUTF8 (uts46 , ZSTR_VAL (domain ), ZSTR_LEN (domain ),
82
78
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 ;
88
84
}
89
85
90
86
ZSTR_VAL (buffer )[len ] = '\0' ;
0 commit comments