From 11e8f0a2ecaf6e391ab412b1b23ece0ddac2dd0c Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Thu, 8 Aug 2024 23:39:09 -0700 Subject: [PATCH] Improve a tcpdump error message, free device list before exiting. If an adapter index that's greater than the number of adapters is specified by the user, mention the incorrect adapter index, and the total number of adapters (the former being greater than the latter), in the error message. Free the adapter list before reporting the error and exiting, to suppress complaints from leak detectots (not that the memory spends much time leaked, as exiting destroys the entire address space, but...). Fixes issue #1208. --- tcpdump.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tcpdump.c b/tcpdump.c index d6b8e600..bddf963f 100644 --- a/tcpdump.c +++ b/tcpdump.c @@ -1171,8 +1171,11 @@ _U_ for (i = 0, dev = devlist; i < devnum-1 && dev != NULL; i++, dev = dev->next) ; - if (dev == NULL) - error("Invalid adapter index"); + if (dev == NULL) { + pcap_freealldevs(devlist); + error("Invalid adapter index %ld: only %ld interfaces found", + devnum, i); + } device = strdup(dev->name); pcap_freealldevs(devlist); return (device); -- 2.39.5