[ http://issues.apache.org/jira/browse/AXISCPP-863?page=all ]
     
Fred Preston closed AXISCPP-863:
--------------------------------


> In the stub generated code, an 'OUT' parameter may be null.  Before trying to 
> copy the contents a test should be done on the size of the object.
> ------------------------------------------------------------------------------------------------------------------------------------------------
>
>          Key: AXISCPP-863
>          URL: http://issues.apache.org/jira/browse/AXISCPP-863
>      Project: Axis-C++
>         Type: Bug

>   Components: Client - Stub
>  Environment: n/a
>     Reporter: Fred Preston
>      Fix For: 1.6 Alpha

>
> For example:-
> Axis_Array arr2 = m_pCall->getCmplxArray((void*) Axis_DeSerialize_Items,
>                                                                               
>  (void*) Axis_Create_Items,
>                                                                               
>  (void*) Axis_Delete_Items,
>                                                                               
>  (void*) Axis_GetSize_Items,
>                                                                               
>  "Items",
>                                                                               
>  Axis_URI_Items);
> *OutValue1 = (Items_Array&) arr2;
> Becomes:-
> Axis_Array arr2 = m_pCall->getCmplxArray((void*) Axis_DeSerialize_Items,
>                                                                               
>  (void*) Axis_Create_Items,
>                                                                               
>  (void*) Axis_Delete_Items,
>                                                                               
>  (void*) Axis_GetSize_Items,
>                                                                               
>  "Items",
>                                                                               
>  Axis_URI_Items);
> if( arr2.m_Size > 0)
> {
>     *OutValue1 = (Items_Array&) arr2;
> }
> Where an 'if' is used to check that there is data to copy before trying to 
> copy a null pointer (NB: It is assumed that the pointer to the output 
> parameter passed to the method has already been set to null by the client 
> application otherwise, on return the client code will not know if OutValue1 
> contains valid data).
> OR, to be completely safe...
> if( arr2.m_Size > 0)
> {
>     *OutValue1 = (Items_Array&) arr2;
> }
> else
> {
>     OutValue1->m_Size = 0;
>     OutValue1->m_Array = NULL;
> }

-- 
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

Reply via email to