I am writing a web service client with gSoap and am using Valgrind to check for memory problems.
Valgrind reports NO LEAKS, but shows this strange (at least for me) memory error message:
==3529== Conditional jump or move depends on uninitialised value(s) ==3529== at 0x405D6DC: soap_reference (stdsoap2.c:6926) ==3529== by 0x405305D: soap_serialize_string (sepomexC.c:4982) ==3529== by 0x404AF5E: soap_serialize_ns1__asentamientosPorCodigoPostalRqType (sepomexC.c:2629) ==3529== by 0x40500F3: soap_serialize_PointerTons1__asentamientosPorCodigoPostalRqType (sepomexC.c:4103) ==3529== by 0x4046666: soap_serialize___sep__consultarAsentamientosPorCodigoPostal (sepomexC.c:1233) ==3529== by 0x4053A7D: soap_call___sep__consultarAsentamientosPorCodigoPostal (sepomexClient.c:186) ==3529== by 0x40417CA: consultarAsentamientosPorCodigoPostal (main.c:73) ==3529== by 0x804870C: main (sepomexmain.c:31) ==3529== ==3529== Conditional jump or move depends on uninitialised value(s) ==3529== at 0x4061AA5: soap_element_id (stdsoap2.c:9583) ==3529== by 0x4068B0C: soap_outstring (stdsoap2.c:12681) ==3529== by 0x4052DAE: soap_out_xsd__integer (sepomexC.c:4918) ==3529== by 0x404B062: soap_out_ns1__asentamientosPorCodigoPostalRqType (sepomexC.c:2643) ==3529== by 0x4050179: soap_out_PointerTons1__asentamientosPorCodigoPostalRqType (sepomexC.c:4111) ==3529== by 0x4046698: soap_out___sep__consultarAsentamientosPorCodigoPostal (sepomexC.c:1238) ==3529== by 0x4046818: soap_put___sep__consultarAsentamientosPorCodigoPostal (sepomexC.c:1274) ==3529== by 0x4053AF6: soap_call___sep__consultarAsentamientosPorCodigoPostal (sepomexClient.c:193) ==3529== by 0x40417CA: consultarAsentamientosPorCodigoPostal (main.c:73) ==3529== by 0x804870C: main (sepomexmain.c:31) ==3529== ==3529== HEAP SUMMARY: ==3529== in use at exit: 0 bytes in 0 blocks ==3529== total heap usage: 160 allocs, 160 frees, 16,161 bytes allocated ==3529== ==3529== All heap blocks were freed -- no leaks are possible ==3529== ==3529== For counts of detected and suppressed errors, rerun with: -v ==3529== Use --track-origins=yes to see where uninitialised values come from ==3529== ERROR SUMMARY: 3 errors from 2 contexts (suppressed: 21 from 8)
NO LEAKS is good news, but are these errors important? As far as I understand, they are generated in stdsoap2.c (gSoap file).
Thanks.
EDIT: Thanks for your answers. As some of you told me that I have uninitialized stuff, it was my struct request variable. I fixed it as follows:
struct ns1__myRequestType request; memset(&request, 0, sizeof(struct ns1__myRequestType));
Now Valgrind's output is "clean" :) Thanks a lot.
user1274605
source share