tcpdump mailing list archives
Re: [Patch 1-4] pcap-usb-linux.c
From: Jean-Louis <jelot-tcpdump () jelot it>
Date: Thu, 30 Oct 2008 03:27:33 +0100
today I have found some bug on pcap-usb-linux.c now i can try to tell you which are
transfer direction in "text mode" is broken...in accordance with usbmon.txt transfer direction is in endpoint_number rather than transfer type
ther'is premature stop when capture traffic on linux with "text mode" due to incorrect check of urb data length.
i.e. with this log d641c3a0 3906920058 S Ci:001:00 s a3 00 0000 0001 0004 4 < d641c3a0 3906920128 C Ci:001:00 0 4 = 01030100 d641c3a0 3906920139 S Ci:001:00 s a3 00 0000 0002 0004 4 < d641c3a0 3906920142 C Ci:001:00 0 4 = 00030000 d6344ca0 3906920147 S Ii:001:01 -115 2 < d641c3a0 3906920179 S Ci:001:00 s a3 00 0000 0001 0004 4 < d641c3a0 3906920183 C Ci:001:00 0 4 = 01030100 d641c3a0 3906920187 S Co:001:00 s 23 01 0010 0001 0000 0 d641c3a0 3906920191 C Co:001:00 0 0 d641c3a0 3906920196 S Ci:001:00 s a3 00 0000 0001 0004 4 < d641c3a0 3906920199 C Ci:001:00 0 4 = 01030000 [CUT] "text mode" capture only 7 packetsthe "d641c3a0 3906920187 S Co:001:00 s 23 01 0010 0001 0000 0" stop capture of traffic.
Index: pcap-usb-linux.c =================================================================== RCS file: /home/jean-louis/cvsroot/libpcap/pcap-usb-linux.c,v retrieving revision 1.1 retrieving revision 1.2 diff -c -r1.1 -r1.2 *** pcap-usb-linux.c 23 Oct 2008 15:52:55 -0000 1.1 --- pcap-usb-linux.c 29 Oct 2008 14:17:44 -0000 1.2 *************** *** 351,357 **** return -1; } uhdr->id = tag; - uhdr->endpoint_number = ep_num; uhdr->device_address = dev_addr; uhdr->bus_id = handle->md.ifindex; uhdr->status = 0; --- 351,356 ---- *************** *** 378,384 **** else if (pipeid1 == 'B') urb_transfer = URB_BULK; if (pipeid2 == 'i') { ! urb_transfer |= URB_TRANSFER_IN; incoming = 1; } if (etype == 'C') --- 377,383 ---- else if (pipeid1 == 'B') urb_transfer = URB_BULK; if (pipeid2 == 'i') { ! ep_num |= URB_TRANSFER_IN; incoming = 1; } if (etype == 'C') *************** *** 395,400 **** --- 394,400 ---- return 0; uhdr->event_type = etype; uhdr->transfer_type = urb_transfer; + uhdr->endpoint_number = ep_num; pkth.caplen = sizeof(pcap_usb_header); rawdata += sizeof(pcap_usb_header); *************** *** 447,453 **** uhdr->urb_len = urb_len; uhdr->data_flag = 1; data_len = 0; ! if (uhdr->urb_len == pkth.caplen) goto got; /* check for data presence; data is present if and only if urb tag is '=' */ --- 447,453 ---- uhdr->urb_len = urb_len; uhdr->data_flag = 1; data_len = 0; ! if (uhdr->urb_len == 0) goto got; /* check for data presence; data is present if and only if urb tag is '=' */
- This is the tcpdump-workers list. Visit https://cod.sandelman.ca/ to unsubscribe.
Current thread:
- tcpdump 4.0.0 + libpcap 1.0.0 Released Ken Bantoft (Oct 27)
- Re: tcpdump 4.0.0 + libpcap 1.0.0 Released Tyson Key (Oct 28)
- Re: tcpdump 4.0.0 + libpcap 1.0.0 Released Guy Harris (Oct 28)
- Re: tcpdump 4.0.0 + libpcap 1.0.0 Released Tyson Key (Oct 29)
- Re: tcpdump 4.0.0 + libpcap 1.0.0 Released Guy Harris (Oct 29)
- Re: tcpdump 4.0.0 + libpcap 1.0.0 Released Tyson Key (Oct 29)
- Re: tcpdump 4.0.0 + libpcap 1.0.0 Released Guy Harris (Oct 29)
- Re: pcap-usb-linux.c Jean-Louis (Oct 29)
- Re: [Patch 1-4] pcap-usb-linux.c Jean-Louis (Oct 29)
- Re: [Patch 2-4] pcap-usb-linux.c Jean-Louis (Oct 29)
- Re: [Patch 3-4] pcap-usb-linux.c Jean-Louis (Oct 29)
- Re: [Patch 4-4] pcap-usb-linux.c Jean-Louis (Oct 29)
- Re: [BUG] pcap-usb-linux.c Jean-Louis (Oct 29)
- Re: [Patch/Workaround?] pcap-usb-linux.c Jean-Louis (Oct 30)
- Re: [Patch/Workaround?] pcap-usb-linux.c Tyson Key (Oct 30)
- Re: [Patch/Workaround?] pcap-usb-linux.c Jean-Louis (Oct 30)
- Re: [Patch/Workaround?] pcap-usb-linux.c Tyson Key (Oct 30)
- Re: [Patch/Workaround?] pcap-usb-linux.c Jean-Louis (Oct 30)
- Re: [Patch/Workaround?] pcap-usb-linux.c Jean-Louis (Oct 30)
- Re: tcpdump 4.0.0 + libpcap 1.0.0 Released Guy Harris (Oct 28)
- Re: tcpdump 4.0.0 + libpcap 1.0.0 Released Tyson Key (Oct 28)