You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by "Greg Franks (JIRA)" <xe...@xml.apache.org> on 2008/12/11 19:42:44 UTC

[jira] Created: (XERCESC-1845) ABW: Array bounds write: xercesc_3_0::XMemory::XMemory() [libxerces-c.a]

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@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org


[jira] Updated: (XERCESC-1845) ABW: Array bounds write: xercesc_3_0::XMemory::XMemory() [libxerces-c.a]

Posted by "Boris Kolpackov (JIRA)" <xe...@xml.apache.org>.
     [ https://issues.apache.org/jira/browse/XERCESC-1845?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Boris Kolpackov updated XERCESC-1845:
-------------------------------------

    Fix Version/s: 3.1.0
                   3.0.1

Need to check if this is real and fix for 3.0.1, 3.10.

> 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
>             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: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org


[jira] Closed: (XERCESC-1845) ABW: Array bounds write: xercesc_3_0::XMemory::XMemory() [libxerces-c.a]

Posted by "Boris Kolpackov (JIRA)" <xe...@xml.apache.org>.
     [ 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: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org