diff options
| author | Sara Golemon <pollita@php.net> | 2004-03-19 21:42:29 +0000 |
|---|---|---|
| committer | Sara Golemon <pollita@php.net> | 2004-03-19 21:42:29 +0000 |
| commit | 75268270d68fb7f2f1b570d61ed65fd1cdb446d3 (patch) | |
| tree | 2b7e21ccd56d95770598713287d73fe60ca25ee4 | |
| parent | dd5d497541f70d671a40c08a53cfa298986ae8db (diff) | |
| download | php-git-75268270d68fb7f2f1b570d61ed65fd1cdb446d3.tar.gz | |
Bug Fix #27657: TXT records longer than MAXHOSTNAMELEN cause segfaults.
| -rw-r--r-- | ext/standard/dns.c | 12 |
1 files changed, 7 insertions, 5 deletions
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); |
