@@ -477,9 +477,10 @@ ZEND_API zend_string *zend_string_concat2(
477477 size_t len = str1_len + str2_len ;
478478 zend_string * res = zend_string_alloc (len , 0 );
479479
480- memcpy (ZSTR_VAL (res ), str1 , str1_len );
481- memcpy (ZSTR_VAL (res ) + str1_len , str2 , str2_len );
482- ZSTR_VAL (res )[len ] = '\0' ;
480+ char * p = ZSTR_VAL (res );
481+ p = zend_mempcpy (p , str1 , str1_len );
482+ p = zend_mempcpy (p , str2 , str2_len );
483+ * p ++ = '\0' ;
483484
484485 return res ;
485486}
@@ -492,10 +493,11 @@ ZEND_API zend_string *zend_string_concat3(
492493 size_t len = str1_len + str2_len + str3_len ;
493494 zend_string * res = zend_string_alloc (len , 0 );
494495
495- memcpy (ZSTR_VAL (res ), str1 , str1_len );
496- memcpy (ZSTR_VAL (res ) + str1_len , str2 , str2_len );
497- memcpy (ZSTR_VAL (res ) + str1_len + str2_len , str3 , str3_len );
498- ZSTR_VAL (res )[len ] = '\0' ;
496+ char * p = ZSTR_VAL (res );
497+ p = zend_mempcpy (p , str1 , str1_len );
498+ p = zend_mempcpy (p , str2 , str2_len );
499+ p = zend_mempcpy (p , str3 , str3_len );
500+ * p ++ = '\0' ;
499501
500502 return res ;
501503}
0 commit comments