From d4e7ea301972a7669229dc567ff5b3b1c865f2e9 Mon Sep 17 00:00:00 2001 From: Robert Edmonds <edmonds@users.noreply.github.com> Date: Wed, 5 Jan 2022 16:46:04 -0500 Subject: [PATCH] pkt: initialize 'lower_qname' in knot_pkt_put_question() --- src/libknot/packet/pkt.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/libknot/packet/pkt.c b/src/libknot/packet/pkt.c index 00f975b4ee..d870260b64 100644 --- a/src/libknot/packet/pkt.c +++ b/src/libknot/packet/pkt.c @@ -475,7 +475,7 @@ int knot_pkt_put_question(knot_pkt_t *pkt, const knot_dname_t *qname, uint16_t q assert(pkt->size == KNOT_WIRE_HEADER_SIZE); assert(pkt->rrset_count == 0); - /* Copy name wireformat. */ + /* Copy name into wire format buffer. */ wire_ctx_t wire = wire_ctx_init(pkt->wire, pkt->max_size); wire_ctx_set_offset(&wire, KNOT_WIRE_HEADER_SIZE); @@ -486,6 +486,16 @@ int knot_pkt_put_question(knot_pkt_t *pkt, const knot_dname_t *qname, uint16_t q } wire_ctx_skip(&wire, qname_len); + /* Allocate lower_qname field. */ + pkt->lower_qname = mm_alloc(&pkt->mm, qname_len); + if (pkt->lower_qname == NULL) { + return KNOT_ENOMEM; + } + + /* Copy QNAME and canonicalize to lowercase. */ + memcpy(pkt->lower_qname, qname, qname_len); + knot_dname_to_lower(pkt->lower_qname); + /* Copy QTYPE & QCLASS */ wire_ctx_write_u16(&wire, qtype); wire_ctx_write_u16(&wire, qclass); -- GitLab