]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Based on a fix from Miroslav Lichvar: don't crash with "-i <num>" if
authorGuy Harris <[email protected]>
Tue, 28 Apr 2009 08:20:38 +0000 (01:20 -0700)
committerGuy Harris <[email protected]>
Tue, 28 Apr 2009 08:20:38 +0000 (01:20 -0700)
there are no interfaces available.

tcpdump.c

index 9c418f38a2085664304c95d3e3d03a5dd991e0d9..c915ae47c22a8eac015d3b335bf440487e7ead1b 100644 (file)
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -655,11 +655,17 @@ main(int argc, char **argv)
                                if (pcap_findalldevs(&devpointer, ebuf) < 0)
                                        error("%s", ebuf);
                                else {
-                                       for (i = 0; i < devnum-1; i++){
-                                               devpointer = devpointer->next;
-                                               if (devpointer == NULL)
-                                                       error("Invalid adapter index");
-                                       }
+                                       /*
+                                        * Look for the devnum-th entry
+                                        * in the list of devices
+                                        * (1-based).
+                                        */
+                                       for (i = 0;
+                                           i < devnum-1 && devpointer != NULL;
+                                           i++, devpointer = devpointer->next)
+                                               ;
+                                       if (devpointer == NULL)
+                                               error("Invalid adapter index");
                                }
                                device = devpointer->name;
                                break;