X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fresolve%2Fresolved-dns-packet.c;h=5d4e097c7589346b42e34d9dcea192c060c1d051;hp=fae105d0daae4e9f0ff8dfe140ad7e577791d9b6;hb=8ac4e9e1e54397f6d1745c2a7a806132418c7da2;hpb=0dae31d468b1a0e22d98921f7b0dbd92fd217167 diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c index fae105d0d..5d4e097c7 100644 --- a/src/resolve/resolved-dns-packet.c +++ b/src/resolve/resolved-dns-packet.c @@ -502,6 +502,7 @@ int dns_packet_append_rr(DnsPacket *p, const DnsResourceRecord *rr, size_t *star case DNS_TYPE_PTR: case DNS_TYPE_NS: case DNS_TYPE_CNAME: + case DNS_TYPE_DNAME: r = dns_packet_append_name(p, rr->ptr.name, NULL); break; @@ -599,7 +600,6 @@ int dns_packet_append_rr(DnsPacket *p, const DnsResourceRecord *rr, size_t *star break; case DNS_TYPE_SRV: - case DNS_TYPE_DNAME: case DNS_TYPE_SSHFP: case _DNS_TYPE_INVALID: /* unparseable */ default: @@ -953,6 +953,7 @@ int dns_packet_read_rr(DnsPacket *p, DnsResourceRecord **ret, size_t *start) { case DNS_TYPE_PTR: case DNS_TYPE_NS: case DNS_TYPE_CNAME: + case DNS_TYPE_DNAME: r = dns_packet_read_name(p, &rr->ptr.name, NULL); break; @@ -968,7 +969,7 @@ int dns_packet_read_rr(DnsPacket *p, DnsResourceRecord **ret, size_t *start) { case DNS_TYPE_TXT: { char *s; - while (p->rindex < p->size) { + while (p->rindex < offset + rdlength) { r = dns_packet_read_string(p, &s, NULL); if (r < 0) goto fail; @@ -1068,7 +1069,6 @@ int dns_packet_read_rr(DnsPacket *p, DnsResourceRecord **ret, size_t *start) { } case DNS_TYPE_SRV: - case DNS_TYPE_DNAME: case DNS_TYPE_SSHFP: default: r = dns_packet_read(p, rdlength, &d, NULL);