Random crashing with rc.40 on Linux

Jonathan Towne jontow at hijacked.us
Thu Mar 8 10:39:11 EST 2007


On Thu, Mar 08, 2007 at 09:58:44AM -0500, Jonathan Towne scribbled:
# On Thu, Mar 08, 2007 at 02:08:14PM +0000, carter at qosient.com scribbled:
# [snip]
# # 
# #    argus -r dump.file -w out.file
# # 

Ok, using the above technique and adding '-ggdb' to the environment
I've gained the following:



(gdb) run -r 2007-03-07_19:10:00-argus-crashes.arg -w test
Starting program: /usr/local/sbin/argus -r 2007-03-07_19:10:00-argus-crashes.arg -w test
argus[37968]: 08 Mar 07 10:32:38.089016 started

Program received signal SIGSEGV, Segmentation fault.
0x0805223f in ArgusOpenInterface (src=0x8220000, inf=0x8220060) at ArgusSource.c:100
100        if ((inf->ArgusPd = pcap_open_live(device->name, src->ArgusSnapLen, !src->Arguspflag, 100, errbuf)) != NULL) {
(gdb) bt full
#0  0x0805223f in ArgusOpenInterface (src=0x8220000, inf=0x8220060) at ArgusSource.c:100
        device = (struct ArgusDeviceStruct *) 0x0
        errbuf = "??a 9\n(jU\b(?\222\004\b\000?\n( 9\n(\000?\n(\000?\n\001 at Op\005jV\020(\000?\n(\220?\005\000\000\000\005\000\000\000jU\b(L\220\004\b\000\000\000\000 9\n(\2305\n(\034k\017(\001\000\000\0004?cX\b(\000?\n($?\001\000\000\0003w\b(\001\000\000\000\2305\n(D?\211x\b(@?n(\204\203\033(t?]x\b(\2305\n((?030(t??Y\b(D{\n(\001\000\000\000t?\211x\b(@?n(\001\000\000\000\000?\n( \201\033(\000\000\"\b ?021\b???"...
#1  0x08054d9e in ArgusGetPackets (src=0x8220000) at ArgusSource.c:1548
        ArgusReadMask = {__fds_bits = {0 <repeats 32 times>}}
        ArgusWriteMask = {__fds_bits = {0 <repeats 32 times>}}
        ArgusExceptMask = {__fds_bits = {0 <repeats 32 times>}}
        tmp = 134688080
        i = 136446048
        width = 0
        noerror = 1
        fd = 672435999
        up = 0
        wait = {tv_sec = 0, tv_usec = 20000}
#2  0x0804bedc in main (argc=5, argv=0xbfbfe7bc) at argus.c:462
        tmpfile = (FILE *) 0x8220001
        commandlinew = 1
        doconf = 0
        path = "/etc/argus.conf\000argus", '\0' <repeats 1002 times>
        i = 0
        pid = 136445953
        tmparg = 0x811c000 ""
        filter = 0x0
        statbuf = {st_dev = 3217024772, st_ino = 1, st_mode = 30515, st_nlink = 10248, st_uid = 1, st_gid = 671757720, st_rdev = 3217024804, 
  st_atimespec = {tv_sec = 671643785, tv_nsec = 671793216}, st_mtimespec = {tv_sec = 134745396, tv_nsec = -1077942444}, st_ctimespec = {
    tv_sec = 671643741, tv_nsec = 671757720}, st_size = -4629727543277489824, st_blocks = 2889744647000185249, st_blksize = 1, st_flags = 0, st_gen = 0, 
  st_lspare = -1077942196, st_birthtimespec = {tv_sec = 672968000, tv_nsec = 671785984}}
        host = (struct hostent *) 0x0
        commandlinei = 0
        op = 136445953



Now, having set the breakpoint at ArgusLog again in the same manner:


(gdb) run -r 2007-03-07_19:10:00-argus-crashes.arg -w test
Starting program: /usr/local/sbin/argus -r 2007-03-07_19:10:00-argus-crashes.arg -w test

Breakpoint 1, ArgusLog (priority=4, fmt=0x8070ea3 "started") at argus_util.c:1416
1416       gettimeofday (&now, 0L);
(gdb) bt full
#0  ArgusLog (priority=4, fmt=0x8070ea3 "started") at argus_util.c:1416
        buf = "\000\000\000\000???\024U\b(?221\004\b\201\033(\034??\000\000\000\b?\b?\031(\220?\035&\a\b\034?\220?", '\0' <repeats 132 times>, "?\232\024( \201\033(\037\217\024(\000\b??\005T\b(?\222\004\b?b\020(\006\000\000\000\225S\b(\021\000\000\000?n\000\000?\000\000\001\2305\n(\200?\n(\000\000\000\000???\024U\b(?\222\004\b??006\000\000?\n(\001\000\000\000?217\024(?n"...
        ptr = 0x8220000 ""
        now = {tv_sec = 671757720, tv_usec = 672435642}
#1  0x0804c414 in main (argc=5, argv=0xbfbfe7bc) at argus.c:454
        gr = (struct group *) 0x0
        commandlinew = 1
        doconf = 0
        path = "/etc/argus.conf\000argus", '\0' <repeats 1002 times>
        i = 30
        pid = 0
        tmparg = 0x0
        filter = 0x8271000 ""
        statbuf = {st_dev = 3217024772, st_ino = 1, st_mode = 30515, st_nlink = 10248, st_uid = 1, st_gid = 671757720, st_rdev = 3217024804, 
  st_atimespec = {tv_sec = 671643785, tv_nsec = 671793216}, st_mtimespec = {tv_sec = 134745396, tv_nsec = -1077942444}, st_ctimespec = {
    tv_sec = 671643741, tv_nsec = 671757720}, st_size = -4629727543277489824, st_blocks = 2889744647000185249, st_blksize = 1, st_flags = 0, st_gen = 0, 
  st_lspare = -1077942196, st_birthtimespec = {tv_sec = 672968000, tv_nsec = 671785984}}
        host = (struct hostent *) 0x8271000
        commandlinei = 0
        op = 0




That ought to be a little more helpful ;)

I'll do a bit of digging, but it may be more obvious to Carter what's happening here.


-- Jonathan Towne



More information about the argus mailing list