File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1470,11 +1470,14 @@ PHP_METHOD(RecursiveDirectoryIterator, getChildren)
14701470 if (subdir ) {
14711471 size_t name_len = strlen (intern -> u .dir .entry .d_name );
14721472 if (intern -> u .dir .sub_path && ZSTR_LEN (intern -> u .dir .sub_path )) {
1473- zend_string * sub_path = zend_string_alloc (ZSTR_LEN (intern -> u .dir .sub_path ) + 1 + name_len , 0 );
1474- memcpy (ZSTR_VAL (sub_path ), ZSTR_VAL (intern -> u .dir .sub_path ), ZSTR_LEN (intern -> u .dir .sub_path ));
1475- ZSTR_VAL (sub_path )[ZSTR_LEN (intern -> u .dir .sub_path )] = slash ;
1476- memcpy (ZSTR_VAL (sub_path ) + ZSTR_LEN (intern -> u .dir .sub_path ) + 1 , intern -> u .dir .entry .d_name , name_len );
1477- ZSTR_VAL (sub_path )[ZSTR_LEN (intern -> u .dir .sub_path ) + 1 + name_len ] = 0 ;
1473+ zend_string * sub_path = zend_string_concat3 (
1474+ ZSTR_VAL (intern -> u .dir .sub_path ),
1475+ ZSTR_LEN (intern -> u .dir .sub_path ),
1476+ & slash ,
1477+ 1 ,
1478+ intern -> u .dir .entry .d_name ,
1479+ name_len
1480+ );
14781481 subdir -> u .dir .sub_path = sub_path ;
14791482 } else {
14801483 subdir -> u .dir .sub_path = zend_string_init (intern -> u .dir .entry .d_name , name_len , 0 );
You can’t perform that action at this time.
0 commit comments