From: Guy Harris Date: Fri, 9 Aug 2024 06:39:09 +0000 (-0700) Subject: Improve a tcpdump error message, free device list before exiting. X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/11e8f0a2ecaf6e391ab412b1b23ece0ddac2dd0c 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. --- 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);