tcpdump mailing list archives

segfault in pcap_snapshot


From: Karl Sjödahl <karlsjod01 () student kau se>
Date: Sun, 22 Feb 2004 23:35:21 +0100

Hi.
I’m tryin to write a simple sniffer with libpcap but I have some
problems that I can’t be able to solve and it’s starting to get
frustrating.
 
Code:
 
#define FILTER “udp or tcp”
#define PROMISC 1
...
if(pcap_open_live(device, BUFSIZ, PROMISC, 0, errbuf) == -1)
{
                      error handling
}
if(pcap_lookupnet(device, &local_net, &netmask, errbuf) == -1)
{
                      error handling
}
if(pcap_compile(p, &filter_code, TESTFILTER, 0, netmask) == -1)
{
                      error handling    
}
if(pcap_setfilter(p, &filter_code) == -1)
{
                      error handling
}
 
After pcap_lookupnet the program segfaults. I have tested everything
with pcap_compile and I can’t understabd what is wrong.
 
Program received signal SIGSEGV, Segmentation fault.
0x88208ac in pcap_snapshot ()
(gdb)
 
And it says there is an error in pcap_snapshot.
If i put a break on pcap_compile and step through it it looks like this:
 
Breakpoint 1, 0x8821d0c in pcap_compile ()
(gdb) ni
0x8821d10 in pcap_compile ()
(gdb) 
0x8821d14 in pcap_compile ()
(gdb) 
0x8821b4c in bpf_filter ()
(gdb) 
0x8821b50 in bpf_filter ()
(gdb) 
0x8821d18 in pcap_compile ()
(gdb) 
0x8821d1c in pcap_compile ()
(gdb) 
0x8821d20 in pcap_compile ()
(gdb) 
0x8821d24 in pcap_compile ()
(gdb) 
0x8821d28 in pcap_compile ()
(gdb) 
0x8821d2c in pcap_compile ()
(gdb) 
0x8821d30 in pcap_compile ()
(gdb) 
0x8821d34 in pcap_compile ()
(gdb) 
0x8821d38 in pcap_compile ()
(gdb) 
0x8821d3c in pcap_compile ()
(gdb) 
0x8821d40 in pcap_compile ()
(gdb) 
0x8821d44 in pcap_compile ()
(gdb) 
0x8821d48 in pcap_compile ()
(gdb) 
0x8821d4c in pcap_compile ()
(gdb) 
0x8821d50 in pcap_compile ()
(gdb) 
0x8821d54 in pcap_compile ()
(gdb) 
0x8b34170 in __DTOR_LIST__ ()
(gdb) 
0x8b34174 in __DTOR_LIST__ ()
(gdb) 
0x8b34128 in __DTOR_LIST__ ()
(gdb) 
0x8b3412c in __DTOR_LIST__ ()
(gdb) 
0x8b34130 in __DTOR_LIST__ ()
(gdb) 
 
Program received signal SIGBUS, Bus error.
0x82141c4 in _dl_bind ()
(gdb)
 
Anybody that can see any errors or can point me in the right direction
where to find good info on how I can write the pcap_compile because it
looks like there error is made there or maybe in the creation of p.
 
Thanks.
 
// Dunceor

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 2004-02-20
 

Current thread: