argus-3.0.0 segfault (5/23 version)

Michael Hornung hornung at cac.washington.edu
Thu May 24 18:13:15 EDT 2007


I've got argus running on a Fedora Core 6 x86 Linux box.  The argus daemon 
dies *very* regularly and so needs to be monitored.  I finally got around 
to capturing a pcap for the duration of an argus session.  Carter, let me 
know if you want this and I'll get it to you; it is 650MB uncompressed. 
Following is what I see when running argus in gdb:

(gdb) run
Starting program: /usr/local/sbin/argus
argus[29762]: 24 May 07 14:56:36.593821 started
argus[29762]: 24 May 07 14:56:36.596492 ArgusGetInterfaceStatus: interface 
eth1 is up
argus[29762]: 24 May 07 14:56:41.031467 connect from 128.95.135.24

Program received signal SIGSEGV, Segmentation fault.
0x0805a340 in ArgusCreateFlowKey (model=0x9491008, flow=0x9492290,
     hstruct=0x9492200) at ArgusUtil.c:785
785           hstruct->hash ^= *ptr++;

(gdb) bt full
#0  0x0805a340 in ArgusCreateFlowKey (model=0x9491008, flow=0x9492290,
     hstruct=0x9492200) at ArgusUtil.c:785
         ptr = (unsigned int *) 0xe025000
         key = (unsigned int *) 0x9492208
         retn = 0
         i = 19811198
         len = -1
#1  0x0804e71f in ArgusProcessPacket (model=0x9491008, p=0x949460a "",
     length=90, tvp=0xbff0d5b8, type=0) at ArgusModeler.c:988
         retn = 0
         tflow = (struct ArgusSystemFlow *) 0x9492290
         flow = (struct ArgusFlowStruct *) 0x94b9d78
         nflow = (struct ArgusFlowStruct *) 0xc6ecbc8
         ptr = 0x949473c "\031"
         value = 0
#2  0x08055b61 in ArgusEtherPacket (user=0xb7e4c008 "", h=0xbff0d5b8,
     p=0x949460a "") at ArgusSource.c:623
         ep = (struct ether_header *) 0x949460a
         ind = 0
         src = (struct ArgusSourceStruct *) 0xb7e4c008
         tvp = (struct timeval *) 0xbff0d5b8
         caplen = 90
         length = 90
         statbuf = {st_dev = 0, __pad1 = 0, __st_ino = 0, st_mode = 0,
   st_nlink = 10354372, st_uid = 3086711688, st_gid = 0,
   st_rdev = 44261669504811007, __pad2 = 18120, st_size = 
-4615955009626666608,
   st_blksize = 10255072, st_blocks = -5189414748145497984, st_atim = {
     tv_sec = 1, tv_nsec = 1}, st_mtim = {tv_sec = 0, tv_nsec = 134516346},
   st_ctim = {tv_sec = 0, tv_nsec = 134911664}, st_ino = 10354372}
#3  0x08066088 in pcap_read_linux ()
No symbol table info available.
#4  0x08057eeb in ArgusGetPackets (src=0xb7e4c008) at ArgusSource.c:1654
         ArgusReadMask = {__fds_bits = {128, 0 <repeats 31 times>}}
         ArgusWriteMask = {__fds_bits = {0 <repeats 32 times>}}
         ArgusExceptMask = {__fds_bits = {0 <repeats 32 times>}}
         tmp = 1
         i = 0
         width = 7
         noerror = 1
         fd = 7
         found = 1
         up = 1
         wait = {tv_sec = 0, tv_usec = 20000}
#5  0x0804b333 in main (argc=1, argv=0xbff0d984) at argus.c:464
         commandlinew = 0
         doconf = 0
         dodebug = 0
         i = 1
         pid = 0
         tmparg = 0x8049f30 "[\201�214�005"
         filter = 0x0
         statbuf = {st_dev = 64768, __pad1 = 0, __st_ino = 2688645,
   st_mode = 33133, st_nlink = 1, st_uid = 500, st_gid = 500, st_rdev = 0,
   __pad2 = 0, st_size = 11114, st_blksize = 4096, st_blocks = 32, st_atim 
= {
     tv_sec = 1180043663, tv_nsec = 0}, st_mtim = {tv_sec = 1180042005,
     tv_nsec = 0}, st_ctim = {tv_sec = 1180042005, tv_nsec = 0},
   st_ino = 2688645}
         host = (struct hostent *) 0x80a94bc
         commandlinei = 0
         op = -1
         path = "/etc/argus.conf\000argus", '\0' <repeats 8170 times>

(gdb) print hstruct->hash
$1 = 2710700798

So again, let me know if the pcap or anything else will be helpful.

-Mike


More information about the argus mailing list