Uploaded image for project: 'Axis2-C'
  1. Axis2-C
  2. AXIS2C-330

Null pointer read while parsing WSDL

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.96
    • woden
    • None
    • Windows XP

    Description

      While parsing a WSDL file my program crashes because of reading a null pointer.

      While debugging I have found the following situation:

      file: /c/woden/src/wsdl/documentable.c

      I see that:

      documentable_impl_l = NULL

      woden_documentable_resolve_methods(
      woden_documentable_t *documentable,
      const axis2_env_t *env,
      woden_documentable_t *documentable_impl,
      axis2_hash_t *methods)

      { [...] documentable->ops->add_documentation_element = axis2_hash_get(methods, <-- after this, add_documentation_element = NULL "add_documentation_element", AXIS2_HASH_KEY_STRING); if (!documentable->ops->add_documentation_element && documentable_impl_l) <-- it does not enter here documentable->ops->add_documentation_element = documentable_impl_l->documentable.ops->add_documentation_element; [...] }

      after the execution of this function, the operation add_documentation_element = NULL, then in the following function it fails:

      file: /c/woden/src/builder/wsdl10_reader.c

      static void *
      parse_interface_op(
      void *reader,
      const axis2_env_t *env,
      axiom_node_t *op_el_node,
      void *desc,
      void *parent)
      {
      [...]
      if (AXIS2_TRUE == axis2_qname_util_matches(env,
      q_elem_documentation, temp_el_node))

      { void *documentation = NULL; documentation = parse_documentation(reader, env, temp_el_node, desc); op = woden_interface_op_to_documentable(op, env); WODEN_DOCUMENTABLE_ADD_DOCUMENTATION_ELEMENT(op, env, documentation); <-- Fails here }

      [...]
      }

      The call to WODEN_DOCUMENTABLE_ADD_DOCUMENTATION_ELEMENT fails, because the method add_documentation_element is null.

      I have tested this with my own code, as well as with the test_woden sample program (which is very similar to my code), using different wsdl files, for example the googlesearch.wsdl file, and the result was always the same.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jmsanchez Jose M. Sánchez
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: