Hi,

I am running on Windows Server 2008 R2, and using a build I made yesterday (svn 957643) I generated code from our wsdl and ran it - it has a leak that was also present in the 1.6.0 release.

Given this in the wsdl file:

     <s:complexType name="CalendarEvent">
       <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="StartTime" type="s:dateTime" /> <s:element minOccurs="1" maxOccurs="1" name="EndTime" type="s:dateTime" /> <s:element minOccurs="1" maxOccurs="1" name="BusyType" type="tns:LegacyFreeBusyType" /> <s:element minOccurs="0" maxOccurs="1" name="CalendarEventDetails" type="tns:CalendarEventDetails" />
       </s:sequence>
     </s:complexType>

the following code is generated:

                  if (!_CalendarEvent->is_valid_StartTime)
                  {


AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Nil value found in non-nillable property StartTime");
                           return NULL;

                  }
                  else
                  {
start_input_str = (axis2_char_t*)AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) *
                                (4 + axutil_strlen(p_prefix) +
                                 axutil_strlen("StartTime")));

                                /* axutil_strlen("<:>") + 1 = 4 */
end_input_str = (axis2_char_t*)AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * (5 + axutil_strlen(p_prefix) + axutil_strlen("StartTime")));
                                 /* axutil_strlen("</:>") + 1 = 5 */






                    /*
                     * parsing StartTime element
                     */



                           sprintf(start_input_str, "<%s%sStartTime>",
                                p_prefix?p_prefix:"",
(p_prefix && axutil_strcmp(p_prefix, ""))?":":"");

start_input_str_len = axutil_strlen(start_input_str);
                       sprintf(end_input_str, "</%s%sStartTime>",
                                p_prefix?p_prefix:"",
(p_prefix && axutil_strcmp(p_prefix, ""))?":":"");
                       end_input_str_len = axutil_strlen(end_input_str);

text_value_1 = axutil_date_time_serialize_date_time(_CalendarEvent->property_StartTime, env);

axutil_stream_write(stream, env, start_input_str, start_input_str_len);

axutil_stream_write(stream, env, text_value_1, axutil_strlen(text_value_1));

axutil_stream_write(stream, env, end_input_str, end_input_str_len);

                -> fix goes here <-
                    AXIS2_FREE(env->allocator,start_input_str);
                    AXIS2_FREE(env->allocator,end_input_str);
                }

The leak is "text_value_1" not being freed.  To fix the leak, add
AXIS2_FREE(env->allocator,text_value_1);
where indicated.

Regards,
Steve





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to