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:
 
 
*********************************************************************

Reply via email to