[
https://issues.apache.org/jira/browse/XERCESC-1845?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Boris Kolpackov closed XERCESC-1845.
------------------------------------
Resolution: Cannot Reproduce
Assignee: Boris Kolpackov
I am closing this issue for two reasons: (1) seeing that the same code works
fine on GNU/Linux and Windows, it is probably a problem with Purify on Solaris
rather than Xerces-C++ code; (2) none of the active developers have access to
Purify on this platform to try to reproduce the problem. If someone is capable
and willing to investigate this further, feel free to reopen this issue.
> 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
> Assignee: Boris Kolpackov
> Fix For: 3.0.1, 3.1.0
>
>
> 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: [email protected]
For additional commands, e-mail: [email protected]