From: Sara Golemon Date: Fri, 19 Mar 2004 21:42:29 +0000 (+0000) Subject: Bug Fix #27657: TXT records longer than MAXHOSTNAMELEN cause segfaults. X-Git-Tag: php-5.0.0RC2RC1~290 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=75268270d68fb7f2f1b570d61ed65fd1cdb446d3;p=php Bug Fix #27657: TXT records longer than MAXHOSTNAMELEN cause segfaults. --- diff --git a/ext/standard/dns.c b/ext/standard/dns.c index 5959e991a5..70c93d3cc6 100644 --- a/ext/standard/dns.c +++ b/ext/standard/dns.c @@ -400,12 +400,14 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int break; case T_TXT: add_assoc_string(*subarray, "type", "TXT", 1); - n = cp[0]; - for(i=1; i<=n; i++) - name[i-1] = cp[i]; - name[i-1] = '\0'; + n = cp[0]; + tp = emalloc(n + 1); + for(i=1; i<=n; i++) { + tp[i-1] = cp[i]; + } + tp[i-1] = '\0'; cp += dlen; - add_assoc_string(*subarray, "txt", name, 1); + add_assoc_stringl(*subarray, "txt", tp, n, 0); break; case T_SOA: add_assoc_string(*subarray, "type", "SOA", 1);