axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christof Schmalenbach (JIRA)" <>
Subject [jira] Created: (AXIS2C-1529) wsdl2c generates skeleton code with memoryleak inside
Date Fri, 14 Jan 2011 22:34:45 GMT
wsdl2c generates skeleton code with memoryleak inside

                 Key: AXIS2C-1529
             Project: Axis2-C
          Issue Type: Bug
          Components: wsdl2c tool
    Affects Versions: 1.6.0
         Environment: This bug can be reproduced on linux as well as on Win32.
On Win32 the following environment is used
- axis2c version 1.6.0
- axis2 java version axis2-1.5.2 (axis2-1.5.3 on linux)
- java full version "JRE 1.6.0 IBM Windows 32 build pwi3260sr8fp1-20100903_02 (SR8 FP1)"
            Reporter: Christof Schmalenbach

One can reproduce the problem with the following steps:
1. Compile the following java class (only to generate a appropriate wsdl used in step 2)
package memleak;

public class MemLeak
	public byte[] getServiceData(byte[] input)
		byte[] output = new byte[10];

2. generate wsdl with the following command from the MemLeak class
java2wsdl -o . -of axis2cwsdl2cmembug.wsdl -sn axis2cmemleak -cn memleak.MemLeak 

3. generate serverside code (skeletons) from the axis2cwsdl2cmembug.wsdl with the following
wsdl2c -o .\c_axis2cwsdl2membug_skeleton -ss -uri axis2cwsdl2cmembug.wsdl

Step 3. generates the following artefacts:

Especially .the generated code /src./adb_getServiceDataResponse.c contains a memory leak in
the function
within every webservice request cycle.
Following code is generated in this function:

                          text_value_1 =axutil_base64_binary_get_encoded_binary(_getServiceDataResponse->property_return,
                           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);

memory for start_input_str and for end_input_str are released , BUT not the memory allocated
in axutil_base64_binary_get_encoded_binary for the pointer text_value_1.
An AXIS2_FREE(env->allocator,text_value_1.); is missed.
This AXIS2_FREE can be included in the generated code, solving the memory leak without destabilizing
the service.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message