[
https://issues.apache.org/jira/browse/XALANC-742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13628251#comment-13628251
]
Michael Chisholm commented on XALANC-742:
-----------------------------------------
Actually, once those extra braces are in, it seems to work on linux (RHEL5, gcc
4.1.2). It still crashes on Windows. It seems to be at a debug pointer check:
_DEBUG_POINTER(_Dest);
(I built the test app in debug mode.) In release mode, it works since I guess
the check doesn't occur, and for whatever reason, it doesn't choke on a NULL
destination pointer.
I think that the impls I've looked at optimize the std::copy() call to
std::memmove(), so it may boil down to whether memmove() allows a NULL
destination pointer. Here is some discussion I found about that:
http://bytes.com/topic/c/answers/214971-memcpy-memmove
there is a quote from the c99 standard that says the pointers may not be NULL.
So I think this does need fixing.
> XalanVector assignment operator crash bug
> -----------------------------------------
>
> Key: XALANC-742
> URL: https://issues.apache.org/jira/browse/XALANC-742
> Project: XalanC
> Issue Type: Bug
> Components: XalanC
> Affects Versions: CurrentCVS, 1.11
> Environment: Tested on Windows 7
> Reporter: Michael Chisholm
> Assignee: Steven J. Hathaway
> Priority: Critical
>
> When assigning an empty XalanVector to another, a NULL dereference and crash
> results. Specifically, the std::copy() statement copies to this->begin(),
> which returns NULL when the vector is empty.
> Here is simple demo code:
> #include <xercesc/util/PlatformUtils.hpp>
> #include <xalanc/Include/XalanVector.hpp>
> using namespace xercesc;
> using namespace xalanc;
> int main(int argc, char* argv[])
> {
> XMLPlatformUtils::Initialize();
> XalanVector<int> vec1;
> XalanVector<int> vec2(XalanMemMgrs::getDefaultXercesMemMgr(), 5);
> vec1 = vec2;
> XMLPlatformUtils::Terminate();
>
> return 0;
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]