c-dev@xerces.apache.org
[Top] [All Lists]

[jira] Created: (XERCESC-1845) ABW: Array bounds write: xercesc_3_0::X

Subject: [jira] Created: (XERCESC-1845) ABW: Array bounds write: xercesc_3_0::XMemory::XMemory() [libxerces-c.a]
From: "Greg Franks (JIRA)"
Date: Thu, 11 Dec 2008 10:42:44 -0800 PST
ABW: Array bounds write:   xercesc_3_0::XMemory::XMemory() [libxerces-c.a]
--------------------------------------------------------------------------

                 Key: XERCESC-1845
                 URL: https://issues.apache.org/jira/browse/XERCESC-1845
             Project: Xerces-C++
          Issue Type: Bug
          Components: Utilities
    Affects Versions: 3.0.0
         Environment: SunOS merlin.sce.carleton.ca 5.9 Generic_122300-21 sun4u 
sparc SUNW,Sun-Blade-100

            Reporter: Greg Franks


Rational Purify is complaining about memory write overruns:  Here is some 
sample output:

      ABW: Array bounds write
      This is occurring while in:
            xercesc_3_0::XMemory::XMemory() [libxerces-c.a]
            xercesc_3_0::XMLMutexMgr::XMLMutexMgr() [libxerces-c.a]
            xercesc_3_0::PosixMutexMgr::PosixMutexMgr() [PosixMutexMgr.cpp]
            
xercesc_3_0::XMLMutexMgr*xercesc_3_0::XMLPlatformUtils::makeMutexMgr(xercesc_3_0::MemoryManager*const)
 [PlatformUtils.cpp:702]
                       #if XERCES_USE_MUTEXMGR_NOTHREAD
                               mgr = new (memmgr) NoThreadMutexMgr;
                       #elif XERCES_USE_MUTEXMGR_POSIX
            =>                 mgr = new (memmgr) PosixMutexMgr;
                       #elif XERCES_USE_MUTEXMGR_WINDOWS
                               mgr = new (memmgr) WindowsMutexMgr;
                       #else
            void xercesc_3_0::XMLPlatformUtils::Initialize(const 
char*const,const 
char*const,xercesc_3_0::PanicHandler*const,xercesc_3_0::MemoryManager*const) 
[PlatformUtils.cpp:220]
               
               
                   // Initialize the platform-specific mutex and file mgrs
            =>     fgMutexMgr          = makeMutexMgr(fgMemoryManager);
                   fgFileMgr           = makeFileMgr(fgMemoryManager);
               
               
            xercesc_3_0::DOMDocument*readXML(const char*) [xmlcommon.cc:174]
      Writing 1 byte to 0x148341c in the heap.
      Address 0x148341c is 1 byte past end of a malloc'd block at 0x1483410 of 
12 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv___1  [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void*xercesc_3_0::MemoryManagerImpl::allocate(unsigned) 
[MemoryManagerImpl.cpp:40]
               {
                   void* memptr;
                   try {
            =>         memptr = ::operator new(size);
                   }
                   catch(...) {
                       throw OutOfMemoryException();
            void*xercesc_3_0::XMemory::operator 
new(unsigned,xercesc_3_0::MemoryManager*) [XMemory.cpp:68]
            
xercesc_3_0::XMLMutexMgr*xercesc_3_0::XMLPlatformUtils::makeMutexMgr(xercesc_3_0::MemoryManager*const)
 [PlatformUtils.cpp:702]

This only occurs on a Sun Sparc using SunPro CC 5.0.  Xerces works fine on 
Linux and Windoze.  This is from the 3.0.0 tarball build.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xxxxxxxxxxxxxxxxx
For additional commands, e-mail: c-dev-help@xxxxxxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>