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