[ https://issues.apache.org/jira/browse/AXIS2C-1222?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Supun Kamburugamuva reassigned AXIS2C-1222: ------------------------------------------- Assignee: Supun Kamburugamuva > Axis2/C AXIOM libxml2 parser frees the IO context before calling the > AXIS2_CLOSE_INPUT_CALLBACK > ----------------------------------------------------------------------------------------------- > > Key: AXIS2C-1222 > URL: https://issues.apache.org/jira/browse/AXIS2C-1222 > Project: Axis2-C > Issue Type: Bug > Components: xml/parser > Affects Versions: 1.4.0 > Environment: Linux/Unix with libxml2 parser > Reporter: Chris Rose > Assignee: Supun Kamburugamuva > > Running under valgrind, I get this invalid read error: > ==21882== Invalid read of size 4 > ==21882== at 0x43F6F69: axiom_close_gstream (axis2c_util.c:246) > ==21882== by 0x44F418F: axis2_libxml2_reader_wrapper_close_input_callback > (libxml2_reader_wrapper.c:964) > ==21882== by 0x451BD8C: xmlFreeParserInputBuffer (xmlIO.c:2307) > ==21882== by 0x4571E6A: xmlTextReaderClose (xmlreader.c:2255) > ==21882== by 0x44F381C: axis2_libxml2_reader_wrapper_free > (libxml2_reader_wrapper.c:505) > ==21882== by 0x44F2686: axiom_xml_reader_free (xml_reader.c:34) > ==21882== by 0x444F914: axiom_stax_builder_free (om_stax_builder.c:909) > ==21882== by 0x43F6D65: Axis2_axiom_deserialize_buffer (axis2c_util.c:152) > ==21882== by 0x43F6820: Axis2c_cmd_svc_client (axis2c.c:419) > ==21882== by 0x402EA62: TclEvalObjvInternal (tclBasic.c:3084) > ==21882== by 0x402F56B: Tcl_EvalEx (tclBasic.c:3674) > ==21882== by 0x4083D91: Tcl_FSEvalFile (tclIOUtil.c:1651) > ==21882== Address 0x47616F0 is 0 bytes inside a block of size 56 free'd > ==21882== at 0x400513F: free (vg_replace_malloc.c:233) > ==21882== by 0x441AEA3: axutil_allocator_free_impl (allocator.c:91) > ==21882== by 0x44F3804: axis2_libxml2_reader_wrapper_free > (libxml2_reader_wrapper.c:500) > ==21882== by 0x44F2686: axiom_xml_reader_free (xml_reader.c:34) > ==21882== by 0x444F914: axiom_stax_builder_free (om_stax_builder.c:909) > ==21882== by 0x43F6D65: Axis2_axiom_deserialize_buffer (axis2c_util.c:152) > ==21882== by 0x43F6820: Axis2c_cmd_svc_client (axis2c.c:419) > ==21882== by 0x402EA62: TclEvalObjvInternal (tclBasic.c:3084) > ==21882== by 0x402F56B: Tcl_EvalEx (tclBasic.c:3674) > ==21882== by 0x4083D91: Tcl_FSEvalFile (tclIOUtil.c:1651) > ==21882== by 0x408C036: Tcl_Main (tclMain.c:292) > ==21882== by 0x80486B3: main (in /home/rosec/install/fc/bin/tclsh8.4) > From this I can see that in the libxml2 reader wrapper code, the context of > the parser -- provided when the IO parser was created -- is freed before the > close callback is invoked by calling xmlFreeTextReader. This is an error in > this instance, because the context handle cannot simply be free()d, in our > application it requires specific destructor work to occur. This might be a > lack of undestanding of the purpose of the close callback, but it's clear > that AXIS2_FREE is invoked on the context handle before the close callback is > invoked. -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]