axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Unai Uribarri (JIRA)" <axis-c-...@ws.apache.org>
Subject [jira] Commented: (AXISCPP-343) SIGSEGV deserializing an array of complex elements
Date Fri, 30 Sep 2005 12:09:51 GMT
    [ http://issues.apache.org/jira/browse/AXISCPP-343?page=comments#action_12330949 ] 

Unai Uribarri commented on AXISCPP-343:
---------------------------------------

An optimization to do the swapping in 4 byte blocks:

long *p1 = (long*)pObj; 
long *p2 = (long*)pNew; 
size_t i = size * sizeof(mapItem) / sizeof(long) / 2; 
while (i) 
{ 
   long c = *p1; 
   *p1 = *p2; 
   *p2 = c; 
   ++p1; 
   ++p2; 
    --i; 
} 


> 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: Dushshantha Chandradasa
>  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
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message