You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Mark Whitlock (JIRA)" <ax...@ws.apache.org> on 2005/02/24 11:24:52 UTC
[jira] Commented: (AXISCPP-343) SIGSEGV deserializing an array of complex elements
[ http://issues.apache.org/jira/browse/AXISCPP-343?page=comments#action_59695 ]
Mark Whitlock commented on AXISCPP-343:
---------------------------------------
This should be fixed for both rpc-encoded and doc-literal. The wsdl is rpc-encoded and fails for the reasons explained above. If it were doc-literal (like AxisBench which does something similar) the destructor would not be virtual, so it succeeds. The solution is to make both the rpc-encoded and doc-literal cases have virtual destructors and do something more sensible instead of the memset.
> SIGSEGV deserializing an array of complex elements
> --------------------------------------------------
>
> Key: AXISCPP-343
> URL: http://issues.apache.org/jira/browse/AXISCPP-343
> Project: Axis-C++
> Type: Bug
> Components: Serialization
> Versions: 1.4 Final
> Environment: RH9
> Reporter: Unai Uribarri
> Assignee: Mark Whitlock
> Attachments: siaam.wsdl
>
> The function Axis_Create_* (in the following example, the mapItem
> object) in the stubs generated by wsdl2ws java tool generates a SIGSEGV
> when tring to enlarge an array of objects
> mapItem* pNew = new mapItem[nSize];
> memcpy(pNew, pObj, sizeof(mapItem)*nSize/2);
> memset(pObj, 0, sizeof(mapItem)*nSize/2);
> --> delete [] pObj; <-- SIGSEGV
> memset clears the virtual table pointer of the mapItem objects and the delete operator crash.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira