ragator segfaults
Carter Bullard
carter at qosient.com
Fri Feb 4 11:02:52 EST 2005
Hey Russell,
Hmmmmmm, does this run on any other kind of machine? If you can share
the file, upload it to ftp://qosient.com/incoming and I'll take a look,
and I'll add the null check to the calloc and make a strerror() printout
so we can see whats going on.
Carter
> From: Russell Fulton <r.fulton at auckland.ac.nz>
> Date: Fri, 04 Feb 2005 17:15:57 +1300
> To: <argus-info at lists.andrew.cmu.edu>
> Subject: Re: [ARGUS] ragator segfaults
>
> hmmm... .debug does not seem to work any more. I nobbled the make files
> in common and client to compile with symbols.
>
>
> -bash-3.00$ gdb bin/ragator ragator.core
> GNU gdb 6.1
> Copyright 2004 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-openbsd3.6"...
> Core was generated by `ragator'.
> Program terminated with signal 11, Segmentation fault.
> Reading symbols from /usr/lib/libm.so.2.0...done.
> Loaded symbols for /usr/lib/libm.so.2.0
> Reading symbols from /usr/lib/libc.so.34.1...done.
> Loaded symbols for /usr/lib/libc.so.34.1
> Reading symbols from /usr/libexec/ld.so...done.
> Loaded symbols for /usr/libexec/ld.so
> #0 0x1c02c973 in ArgusCalloc (nitems=1, size=124)
> at ./argus_filter.c:5210
> 5210 *retn = 0x45672381;
> (gdb) l
> 5205
> 5206 if (size) {
> 5207 ArgusCallocTotal++;
> 5208 retn = (unsigned int *) calloc (1, bytes + 4);
> 5209
> 5210 *retn = 0x45672381;
> 5211 retn++;
> 5212 }
> 5213
> 5214 #ifdef ARGUSDEBUG
> (gdb) p retn
> $1 = (unsigned int *) 0x0
>
> So yes, it seems to be running out of memory get a lousy 4 byte int!
> and the calloc return is not checked.
>
> This is weird since the box has 300MB of free memory and the file I am
> processing is about 15 MB.
>
> Is it possible that the memory is being allocated out of some limited
> kernel pool?
>
> OS is OBSD 3.6
>
> One more thing, it does work with file of under 10MB.
>
> Russell.
More information about the argus
mailing list