chiark / gitweb /
Reject invalid quoted strings
[elogind.git] / src / resolve / resolved-dns-packet.c
index 5eaee2cb4f751e2be52a1475deb869366f3d6ad1..3e6c9a480b0b93d2f57be9b7479a6c49fffd937d 100644 (file)
@@ -574,6 +574,9 @@ int dns_packet_append_rr(DnsPacket *p, const DnsResourceRecord *rr, size_t *star
                 goto fail;
         p->size = end;
 
+        if (start)
+                *start = saved_size;
+
         return 0;
 
 fail:
@@ -868,6 +871,12 @@ int dns_packet_read_rr(DnsPacket *p, DnsResourceRecord **ret, size_t *start) {
         if (r < 0)
                 goto fail;
 
+        if (key->class == DNS_CLASS_ANY ||
+            key->type == DNS_TYPE_ANY) {
+                r = -EBADMSG;
+                goto fail;
+        }
+
         rr = dns_resource_record_new(key);
         if (!rr) {
                 r = -ENOMEM;