chiark / gitweb /
mount: add remote-fs dependencies if needed after change
[elogind.git] / src / resolve / resolved-dns-packet.c
index 2afb8d05da7dc666872ea4f2f92e60d27bbca179..a9bd8b13988dc31d6e5641921097be38fc3d6e08 100644 (file)
@@ -928,8 +928,10 @@ int dns_packet_read_name(DnsPacket *p, char **_ret,
                         /* Jumps are limited to a "prior occurence" (RFC-1035 4.1.4) */
                         jump_barrier = ptr;
                         p->rindex = ptr;
-                } else
+                } else {
+                        r = -EBADMSG;
                         goto fail;
+                }
         }
 
         if (!GREEDY_REALLOC(ret, allocated, n + 1)) {
@@ -1112,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)