diff --git a/ext/standard/dns_win32.c b/ext/standard/dns_win32.c index b5eb1e062141f..466d927ea3e64 100644 --- a/ext/standard/dns_win32.c +++ b/ext/standard/dns_win32.c @@ -223,18 +223,18 @@ static void php_parserr(PDNS_RECORD pRec, int type_to_fetch, int store, int raw, array_init(&entries); for (i = 0; i < count; i++) { - txt_len += strlen(data_txt->pStringArray[i]) + 1; + txt_len += strlen(data_txt->pStringArray[i]); } - txt = zend_string_safe_alloc(txt_len, 2, 0, 0); - txt_dst = txt->val; + txt = zend_string_alloc(txt_len, 0); + txt_dst = ZSTR_VAL(txt); for (i = 0; i < count; i++) { size_t len = strlen(data_txt->pStringArray[i]); memcpy(txt_dst, data_txt->pStringArray[i], len); add_next_index_stringl(&entries, data_txt->pStringArray[i], len); txt_dst += len; } - txt->len = txt_dst - txt->val; + *txt_dst = '\0'; add_assoc_str(subarray, "txt", txt); add_assoc_zval(subarray, "entries", &entries); }