On Mon, May 28, 2007 at 09:12:58AM +0100, Stuart Henderson wrote:

> the bug is probably in a protocol decoder, in which case you'd still
> be able to write the network data to disk; a copy of this may help
> someone locate the problem (tcpdump -ienc0 -w file)

Thanks for your suggestions (also the one about "-s 1500")!

This is what I found:

- When adding "-s 1500" to the parameters, no segfault occurs. (Output at
  http://www.stupendous.org/enc0-s1500.log)

- When running under gdb, I get the following:

        [snip (using args "-npienc0")]
19:19:07.584092 (authentic,confidential): SPI 0x66436c81: 194.109.21.66.52091 > 
192.168.2.12.8381: . 419725:420249(524) ack 1 win 46 <nop,nop,timestamp 
3760582140 454451604> (DF) [tos 0x8] (encap)
19:19:07.585631 (authentic,confidential): SPI 0x66436c81: 194.109.21.66.52091 > 
192.168.2.12.8381: . 419201:419725(524) ack 1 win 46 <nop,nop,timestamp 
3760582140 454451604> (DF) [tos 0x8] (encap)
19:19:07.585825 (authentic,confidential): SPI 0x5d5feb70: 192.168.2.12.8381 > 
194.109.21.66.52091: . ack 413437 win 15860 <nop,nop,timestamp 454451604 
3760582120> (DF) [tos 0x8] (encap)
19:19:07.587079 (authentic,confidential): SPI 0x66436c81: 194.109.21.66.52091 > 
192.168.2.12.8381: . 420249:420773(524) ack 1 win 46 <nop,nop,timestamp 
3760582140 454451604> (DF) [tos 0x8] (encap)

Program received signal SIGSEGV, Segmentation fault.
0x000000004227e809 in memcpy (dst0=0x4f052080, src0=0x42aaf003, length=0) at 
/usr/src/lib/libc/string/bcopy.c:115
115                             TLOOP1(*--dst = *--src);
(gdb) bt
#0  0x000000004227e809 in memcpy (dst0=0x4f052080, src0=0x42aaf003, length=0) 
at /usr/src/lib/libc/string/bcopy.c:115
#1  0x0000000000408259 in ip_print (bp=0x42aaefa4 "[EMAIL PROTECTED]@", 
length=576) at /usr/src/usr.sbin/tcpdump/print-ip.c:382
#2  0x0000000000408722 in ip_print (bp=0x14 <Address 0x14 out of bounds>, 
length=16384) at /usr/src/usr.sbin/tcpdump/print-ip.c:471
#3  0x000000000041d49c in enc_if_print (user=0x4f052080 "[EMAIL PROTECTED]'@", 
h=0x4f052080, p=0x42aaef90 "E\b\002T<\030@")
    at /usr/src/usr.sbin/tcpdump/print-enc.c:99
#4  0x000000004c191d64 in pcap_read (p=0x49817200, cnt=-1, callback=0x41d3c0 
<enc_if_print>, user=0x0)
    at /usr/src/lib/libpcap/pcap-bpf.c:154
#5  0x000000004c19257b in pcap_loop (p=0x49817200, cnt=-1, callback=0x41d3c0 
<enc_if_print>, user=0x0)
    at /usr/src/lib/libpcap/pcap.c:76
#6  0x0000000000403276 in main (argc=2, argv=0x41d3c0) at 
/usr/src/usr.sbin/tcpdump/tcpdump.c:485
(gdb)

I made the resulting file of "tcpdump -p -ienc0 -w enc0.dump" available at
http://www.stupendous.org/enc0.dump.

Should I file a bugreport?
-- 
Jurjen Oskam

Savage's Law of Expediency:
        You want it bad, you'll get it bad.

Reply via email to