From 7879ab0bf87e799449147c810d7f6dfff94cd548 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Fri, 5 Jun 2026 11:33:41 +0200 Subject: [PATCH] Reserve 2 * LDNS_MAX_PACKETLEN for hex packets With ldns-testns --- Changelog | 4 ++++ examples/ldns-testpkts.c | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Changelog b/Changelog index 74e2631a..7fcda0be 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,7 @@ +1.9.? 2026-??-?? + * Bugfix: ldns-testns needs twice LDNS_MAX_PACKETLEN for the + hexadecimal representation of a packet + 1.9.0 2025-12-04 * PR #246: Make ldns_calc_keytag() available for CDNSKEY RR Thanks tgreenx and pnax diff --git a/examples/ldns-testpkts.c b/examples/ldns-testpkts.c index c74f0f75..c6d54cfb 100644 --- a/examples/ldns-testpkts.c +++ b/examples/ldns-testpkts.c @@ -340,7 +340,7 @@ data_buffer2wire(ldns_buffer *data_buffer) uint8_t *data_wire = (uint8_t *) ldns_buffer_begin(data_buffer); uint8_t *wire = LDNS_XMALLOC(uint8_t, LDNS_MAX_PACKETLEN); - hexbuf = LDNS_XMALLOC(uint8_t, LDNS_MAX_PACKETLEN); + hexbuf = LDNS_XMALLOC(uint8_t, 2*LDNS_MAX_PACKETLEN); for (data_buf_pos = 0; data_buf_pos < ldns_buffer_position(data_buffer); data_buf_pos++) { c = (int) data_wire[data_buf_pos]; @@ -354,7 +354,7 @@ data_buffer2wire(ldns_buffer *data_buffer) (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F') ) { - if (hexbufpos >= LDNS_MAX_PACKETLEN) { + if (hexbufpos >= 2*LDNS_MAX_PACKETLEN) { error("buffer overflow"); LDNS_FREE(hexbuf); return 0; @@ -374,7 +374,7 @@ data_buffer2wire(ldns_buffer *data_buffer) } break; case 2: - if (hexbufpos >= LDNS_MAX_PACKETLEN) { + if (hexbufpos >= 2*LDNS_MAX_PACKETLEN) { error("buffer overflow"); LDNS_FREE(hexbuf); return 0; @@ -385,13 +385,13 @@ data_buffer2wire(ldns_buffer *data_buffer) } } - if (hexbufpos >= LDNS_MAX_PACKETLEN) { + if (hexbufpos >= 2*LDNS_MAX_PACKETLEN) { /*verbose("packet size reached\n");*/ } /* lenient mode: length must be multiple of 2 */ if (hexbufpos % 2 != 0) { - if (hexbufpos >= LDNS_MAX_PACKETLEN) { + if (hexbufpos >= 2*LDNS_MAX_PACKETLEN) { error("buffer overflow"); LDNS_FREE(hexbuf); return 0; -- 2.47.3