[systemd-commits] src/resolve

Zbigniew Jędrzejewski-Szmek zbyszek at kemper.freedesktop.org
Thu Nov 27 08:08:05 PST 2014


 src/resolve/resolved-dns-packet.c |    7 +++++++
 1 file changed, 7 insertions(+)

New commits:
commit 0e3434aeb1eed951fdbeddacc6126e10d82a1c8b
Author: Stanisław Pitucha <viraptor at gmail.com>
Date:   Tue Nov 18 14:52:13 2014 +1100

    resolve: reject empty TXT records
    
    TXT records should have at least one character, so enforce this.
    
    Before 0f84a72 parser SIGSEGV'd on ->txt.strings being NULL, but
    even if this is fixed we should reject invalid TXT records.

diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c
index c587a56..a9bd8b1 100644
--- a/src/resolve/resolved-dns-packet.c
+++ b/src/resolve/resolved-dns-packet.c
@@ -1114,6 +1114,13 @@ int dns_packet_read_rr(DnsPacket *p, DnsResourceRecord **ret, size_t *start) {
         case DNS_TYPE_TXT: {
                 char *s;
 
+                /* RFC 1035 says that TXT must be at least one
+                   string. Reject empty records. */
+                if (!rdlength) {
+                        r = -EBADMSG;
+                        goto fail;
+                }
+
                 while (p->rindex < offset + rdlength) {
                         r = dns_packet_read_string(p, &s, NULL);
                         if (r < 0)



More information about the systemd-commits mailing list