From: W.C.A. Wijngaards Date: Fri, 20 Mar 2026 14:57:46 +0000 (+0100) Subject: - Fix for testcode pktview to check buffer size and log errors. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=535d899beff4e14a409aecb499a840d349dc1c7b;p=thirdparty%2Funbound.git - Fix for testcode pktview to check buffer size and log errors. --- diff --git a/doc/Changelog b/doc/Changelog index 396a2c3b6..f92de7fd0 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +20 March 2026: Wouter + - Fix for testcode pktview to check buffer size and log errors. + 13 March 2026: Yorgos - Fix to ignore out-of-zone DNAME records for CNAME synthesis. Thanks to Yuxiao Wu, Yiyi Wang, Zhang Chao, Baojun Liu, and Haixin Duan from diff --git a/testcode/pktview.c b/testcode/pktview.c index 12e0d8edb..4cada926b 100644 --- a/testcode/pktview.c +++ b/testcode/pktview.c @@ -59,12 +59,16 @@ static void usage(char* argv[]) /** read hex input */ static void read_input(sldns_buffer* pkt, FILE* in) { - char buf[102400]; + /* Buffer for 64Kib packet, in hex, with spaces and comments. */ + char buf[1024000]; char* np = buf; while(fgets(np, (int)sizeof(buf) - (np-buf), in)) { if(buf[0] == ';') /* comment */ continue; np = &np[strlen(np)]; + if((size_t)(np-buf) >= sizeof(buf)-1) + fatal_exit("input too large (%lu bytes)", + (unsigned long)sizeof(buf)); } hex_to_buf(pkt, buf); } @@ -188,10 +192,16 @@ static void analyze(sldns_buffer* pkt) /** main program for pktview */ int main(int argc, char* argv[]) { - sldns_buffer* pkt = sldns_buffer_new(65553); + sldns_buffer* pkt; + + log_init(NULL, 0, NULL); + log_ident_set("pktview"); + if(argc != 1) { usage(argv); } + + pkt = sldns_buffer_new(65553); if(!pkt) fatal_exit("out of memory"); read_input(pkt, stdin);