I'm working with Axis2C. I'm doing some test with a simple web service client to test this framework.
I wrote the client using some examples and the documentation provided by Apache. The client works fine and I decided to test it with valgrind to make sure the memory management is correct.
I used the functions mentioned in the examples and documentation to free memory (in this particular case) :
// to free the requst struct.
adb_EncryptRequest_free(request, env);
// to free the stub.
axis2_stub_free(stub, env);
// to free the environment.
axutil_env_free((axutil_env_t*) env);
I don't have any "wild" new or malloc in the code.
However, valgrind reports the following:
LEAK SUMMARY:
==2287== definitely lost: 56 bytes in 3 blocks
==2287== indirectly lost: 156 bytes in 5 blocks
==2287== possibly lost: 0 bytes in 0 blocks
==2287== still reachable: 20 bytes in 1 blocks
==2287== suppressed: 0 bytes in 0 blocks
I rerun Valgind with --leak-check=full, but as I understand the memory issues are located in the axis2c *.so files.
HEAP SUMMARY:
==2292== in use at exit: 232 bytes in 9 blocks
==2292== total heap usage: 13,180 allocs, 13,171 frees, 760,422 bytes allocated
==2292==
==2292== 68 (16 direct, 52 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 9
==2292== at 0x400677E: malloc (vg_replace_malloc.c:195)
==2292== by 0x40C2032: axutil_allocator_malloc_impl (in /home/EMBT/Downloads/axis2c-bin-1.6.0-linux/lib/libaxutil.so.0.6.0)
==2292== by 0x40C5C07: axutil_string_create (in /home/EMBT/Downloads/axis2c-bin-1.6.0-linux/lib/libaxutil.so.0.6.0)
==2292== by 0x804E024: axis2_stub_start_op_PoCPCIServiceService_GetEncryptedData (axis2_stub_PoCPCIServiceService.c:493)
==2292== by 0x804E759: main (main.c:59)
==2292==
==2292== 72 (20 direct, 52 indirect) bytes in 1 blocks are definitely lost in loss record 8 of 9
==2292== at 0x400677E: malloc (vg_replace_malloc.c:195)
==2292== by 0x40C2032: axutil_allocator_malloc_impl (in /home/EMBT/Downloads/axis2c-bin-1.6.0-linux/lib/libaxutil.so.0.6.0)
==2292== by 0x40C74F5: axutil_qname_create (in /home/EMBT/Downloads/axis2c-bin-1.6.0-linux/lib/libaxutil.so.0.6.0)
==2292== by 0x804D515: axis2_stub_populate_services_for_PoCPCIServiceService (axis2_stub_PoCPCIServiceService.c:91)
==2292== by 0x804D395: axis2_stub_create_PoCPCIServiceService (axis2_stub_PoCPCIServiceService.c:48)
==2292== by 0x804E6ED: main (main.c:46)
==2292==
==2292== 72 (20 direct, 52 indirect) bytes in 1 blocks are definitely lost in loss record 9 of 9
==2292== at 0x400677E: malloc (vg_replace_malloc.c:195)
==2292== by 0x40C2032: axutil_allocator_malloc_impl (in /home/EMBT/Downloads/axis2c-bin-1.6.0-linux/lib/libaxutil.so.0.6.0)
==2292== by 0x40C74F5: axutil_qname_create (in /home/EMBT/Downloads/axis2c-bin-1.6.0-linux/lib/libaxutil.so.0.6.0)
==2292== by 0x804D64F: axis2_stub_populate_services_for_PoCPCIServiceService (axis2_stub_PoCPCIServiceService.c:111)
==2292== by 0x804D395: axis2_stub_create_PoCPCIServiceService (axis2_stub_PoCPCIServiceService.c:48)
==2292== by 0x804E6ED: main (main.c:46)
If I'm correct, is there a way I can solve it?
Thanks for your help.
Regards.