diff options
| author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2026-05-22 14:08:07 +0000 |
|---|---|---|
| committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2026-05-22 14:08:07 +0000 |
| commit | 4dd0a17edce60370304a45f2c40251e09e193bd6 (patch) | |
| tree | f0cb0f27a9e83b56f8383265413d035ab01926c6 /testcode/pktview.c | |
| parent | ec5b94f552d7cb2a9d456c67e9941bcf5e3698bf (diff) | |
Diffstat (limited to 'testcode/pktview.c')
| -rw-r--r-- | testcode/pktview.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/testcode/pktview.c b/testcode/pktview.c index 12e0d8edbb68..4cada926b5e6 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); |
