com php-src: Fix potential segfault in dns_get_record() : ext/standard/dns.c

From: Date: Fri, 13 Jun 2014 23:42:55 +0000
Subject: com php-src: Fix potential segfault in dns_get_record() : ext/standard/dns.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-79646@lists.php.net to get a copy of this message
Commit: d400b74296989afadddc960db5ad103bf61e51d0 Author: Sara Golemon <pollita@php.net> Tue, 10 Jun 2014 11:18:02 -0700 Committer: Stanislav Malyshev <stas@php.net> Fri, 13 Jun 2014 16:42:55 -0700 Parents: 08334293f8883c2bcbb74ed10b8133672fee8706 Branches: PHP-5.3 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=d400b74296989afadddc960db5ad103bf61e51d0 Log: Fix potential segfault in dns_get_record() If the remote sends us a packet with a malformed TXT record, we could end up trying to over-consume the packet and wander off into overruns. Changed paths: M ext/standard/dns.c Diff: diff --git a/ext/standard/dns.c b/ext/standard/dns.c index 8e24a81..67ea459 100644 --- a/ext/standard/dns.c +++ b/ext/standard/dns.c @@ -507,6 +507,10 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int while (ll < dlen) { n = cp[ll]; + if ((ll + n) >= dlen) { + // Invalid chunk length, truncate + n = dlen - (ll + 1); + } memcpy(tp + ll , cp + ll + 1, n); add_next_index_stringl(entries, cp + ll + 1, n, 1); ll = ll + n + 1;

« previous php.cvs (#79646) next »