|
Hi all,
I think I've found the source of the memory
problems I'm having with the dictionary routines running on IRIX! I'm not
sure about how to fix it so I'm letting the experts know before I spend too much
time trying to fix it.
The problem seems to be that when elements are
added to a dictionary (in _dxf_ExDictionaryInsert, src/exec/dpexec/d.c) there's
no check if the number of items in the dictionary is greater than the
size. I was writing out a lot of debugging information and noticed along
the way that a dictionary of size 64 (created in graph.c) had 82 items in it at
the time of the crash. (To clarify: I wrote out the number of items
and the size each time something was inserted into any dictionary and watched
the items variable go past 64.) This dictionary overrun managed to corrupt
data in a different dictionary which caused a null string to get passed into
strcmp resulting in the segmentation violation.
I don't know if the solution is as simple as
increasing the DICT_SIZE from 64 to something bigger (probably not a good idea)
or will require checks in _dxf_ExDictionaryInsert and changes elsewhere.
I'll continue to muddle around in the code, but any suggestions are very, very
welcome.
*********************************************************************
Alan M. Ferrenberg ([EMAIL PROTECTED]) Manager, Research and Computational Science Support UGA Computing and Networking Services Get the latest information from UCNS!
Subscribe to our weekly e-mail
publication "UCNS Weekly News". For more information, check out: *********************************************************************
|
- [opendx-dev] Dictionary overruns Alan Ferrenberg
- Re: [opendx-dev] Dictionary overruns gabra
- Re: [opendx-dev] Dictionary overruns Alan Ferrenberg
- Re: [opendx-dev] Dictionary overruns gabra
