hesiod: Avoid heap overflow in get_txt_records [BZ #20031]

This commit is contained in:
Florian Weimer 2016-05-02 16:04:32 +02:00
parent 5018f16c62
commit 8a03ccbb77
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2016-05-02 Florian Weimer <fweimer@redhat.com>
[BZ #20031]
* hesiod/hesiod.c (get_txt_records): Return error if TXT record is
completely empty.
2016-05-02 Florian Weimer <fweimer@redhat.com>
[BZ #19573]

View File

@ -398,7 +398,7 @@ get_txt_records(struct hesiod_p *ctx, int class, const char *name) {
cp += INT16SZ + INT32SZ; /* skip the ttl, too */
rr.dlen = ns_get16(cp);
cp += INT16SZ;
if (cp + rr.dlen > eom) {
if (rr.dlen == 0 || cp + rr.dlen > eom) {
__set_errno(EMSGSIZE);
goto cleanup;
}