argus-2.0.0i

Carter Bullard carter at qosient.com
Tue Sep 26 13:50:54 EDT 2000


Hey Peter et al,
   Back on the air.  My DSL link has been down since
Sunday. |^(

   As I mentioned, I think I found this problem. I've got
 ftp://qosient.com/dev/argus/argus-2.0/argus-2.0.0i.tar.gz
on the server, please give this a try.  I think I was writing
a bunch of zero's into some memory that was inappropriate.
So I've made some changes to bcopy's and put in some pointer
boundary checks, so maybe this will help.

   In this version I have also added Slip and PPP interface
support but I have not been able to test it, as well as
ATM interface support, and so if there are interested people
please do give it a try.

   I have put back in the -a option support for clients, and
added more information.  If there is a need to redo this
option [  Chas I think that this was one of your requests ]
now is the time to test and get opinions/comments/requests/
attitude/whatever in.

   I have clean up'd a great deal of stuff, and so we're
getting close to being done with phase I (1.8.1 functionality
with a few new tricks (non-ip traffic support), totally
new platform).


Carter

Carter Bullard
QoSient, LLC
300 E. 56th Street, Suite 17A
New York, New York  10022

carter at qosient.com
Phone +1 212 813-9426
Fax   +1 212 813-9426




-----Original Message-----
From: Peter Van Epp [mailto:vanepp at sfu.ca]
Sent: Monday, September 25, 2000 2:22 PM
To: Carter Bullard
Subject: Re: nasty brokeness!


	It looks to me like something (possibly runt packets) is causing a
record full of 0's to be passed to the processing routing which then blows
up as it tries to process garbage. These two are from the two core dumps
where argus was running along and then died:

demoa# gdb argus_bpf argus_bpf.core.2
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-freebsd"...
Core was generated by `argus_bpf'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libm.so.2...done.
Reading symbols from /usr/lib/libc.so.4...done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
#0  0x281183be in bcopy () from /usr/lib/libc.so.4
(gdb) where
#0  0x281183be in bcopy () from /usr/lib/libc.so.4
#1  0x831e704 in ?? ()
#2  0x804a9f2 in ArgusSendFlowRecord (flow=0x831e704, state=32)
    at ./ArgusModeler.c:705
#3  0x804b087 in ArgusTimeOut (flow=0x831e704) at ./ArgusModeler.c:1074
#4  0x804df4b in ArgusProcessQueue (queue=0x817c004, status=4)
    at ./ArgusUtil.c:384
#5  0x804ab8c in ArgusSystemTimeout () at ./ArgusModeler.c:786
#6  0x804d61e in ArgusGetPackets () at ./ArgusSource.c:510
#7  0x8049d03 in ArgusLoop () at ./argus.c:265
#8  0x8049c06 in main (argc=5, argv=0xbfbffbf0) at ./argus.c:188
#9  0x80496c9 in _start ()
(gdb) up
#1  0x831e704 in ?? ()
(gdb) up
#2  0x804a9f2 in ArgusSendFlowRecord (flow=0x831e704, state=32)
    at ./ArgusModeler.c:705
705                       ArgusICMPFlowRecord (flow, argus);
(gdb) print *flow
$1 = {qhdr = {status = 0, index = 0, lasttime = {tv_sec = 0, tv_usec = 0},
    logtime = {tv_sec = 0, tv_usec = 0}}, htblhdr = 0x0,
  ArgusTransactionNum = 0, ArgusTimeout = 0, state = {startime = {tv_sec =
0,
      tv_usec = 0}, lasttime = {tv_sec = 0, tv_usec = 0}, status = 0, rev =
0,
    dir = 0, last = 0x0, src = {status = 0, ip_id = 0, ttl = 0 '\000',
      tos = 0 '\000', lasttime = {tv_sec = 0, tv_usec = 0}, count = 0,
      bytes = 0, active = {min = 0, max = 0, sum = 0, n = 0, sumsqrd = 0},
      idle = {min = 0, max = 0, sum = 0, n = 0, sumsqrd = 0}}, dst = {
      status = 0, ip_id = 0, ttl = 0 '\000', tos = 0 '\000', lasttime = {
        tv_sec = 0, tv_usec = 0}, count = 0, bytes = 0, active = {min = 0,
        max = 0, sum = 0, n = 0, sumsqrd = 0}, idle = {min = 0, max = 0,
        sum = 0, n = 0, sumsqrd = 0}}}, NetworkDSRBuffer = 0x0,
  FragDSRBuffer = 0x0, TransportDSRBuffer = 0x0, SessionDSRBuffer = 0x0,
  UserDSRBuffer = 0x0}
(gdb) q


demoa# gdb argus_bpf argus_bpf.core.4
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-freebsd"...
Core was generated by `argus_bpf'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libm.so.2...done.
Reading symbols from /usr/lib/libc.so.4...done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
#0  0x281183be in bcopy () from /usr/lib/libc.so.4
(gdb) where
#0  0x281183be in bcopy () from /usr/lib/libc.so.4
#1  0x910f304 in ?? ()
#2  0x804a9f2 in ArgusSendFlowRecord (flow=0x910f304, state=8)
    at ./ArgusModeler.c:705
#3  0x804dee9 in ArgusProcessQueue (queue=0x817c004, status=8)
    at ./ArgusUtil.c:372
#4  0x804abb5 in ArgusModelerCleanUp () at ./ArgusModeler.c:798
#5  0x8049e67 in ArgusDeleteModeler () at ./ArgusModeler.c:124
#6  0x8049d27 in ArgusShutDown (sig=1) at ./argus.c:278
#7  0xbfbfffac in ?? ()
#8  0x8049d03 in ArgusLoop () at ./argus.c:265
#9  0x8049c06 in main (argc=5, argv=0xbfbffbf0) at ./argus.c:188
#10 0x80496c9 in _start ()
(gdb) up
#1  0x910f304 in ?? ()
(gdb) up
#2  0x804a9f2 in ArgusSendFlowRecord (flow=0x910f304, state=8)
    at ./ArgusModeler.c:705
705                       ArgusICMPFlowRecord (flow, argus);
(gdb) print flow
$1 = (struct ArgusFlowStruct *) 0xbfbff3c8
(gdb) print *flow
$2 = {qhdr = {status = 0, index = 0, lasttime = {tv_sec = 0, tv_usec = 0},
    logtime = {tv_sec = 0, tv_usec = 0}}, htblhdr = 0x0,
  ArgusTransactionNum = 0, ArgusTimeout = 0, state = {startime = {tv_sec =
0,
      tv_usec = 0}, lasttime = {tv_sec = 0, tv_usec = 0}, status = 0, rev =
0,
    dir = 0, last = 0x0, src = {status = 0, ip_id = 0, ttl = 0 '\000',
      tos = 0 '\000', lasttime = {tv_sec = 0, tv_usec = 0}, count = 0,
      bytes = 0, active = {min = 0, max = 0, sum = 0, n = 0, sumsqrd = 0},
      idle = {min = 0, max = 0, sum = 0, n = 0, sumsqrd = 0}}, dst = {
      status = 0, ip_id = 0, ttl = 0 '\000', tos = 0 '\000', lasttime = {
        tv_sec = 0, tv_usec = 0}, count = 0, bytes = 0, active = {min = 0,
        max = 0, sum = 0, n = 0, sumsqrd = 0}, idle = {min = 0, max = 0,
        sum = 0, n = 0, sumsqrd = 0}}}, NetworkDSRBuffer = 0x0,
  FragDSRBuffer = 0x0, TransportDSRBuffer = 0x0, SessionDSRBuffer = 0x0,
  UserDSRBuffer = 0x0}
(gdb) print argus
$3 = (struct ArgusRecord *) 0x0
(gdb) q

Peter Van Epp / Operations and Technical Support
Simon Fraser University, Burnaby, B.C. Canada
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist1.pair.net/pipermail/argus/attachments/20000926/cadfb2c8/attachment.html>


More information about the argus mailing list