[
https://issues.apache.org/jira/browse/AXIS2C-771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dimuthu Gamage resolved AXIS2C-771.
-----------------------------------
Resolution: Fixed
Fixed in the Axis2/Java svn revision 598207
Please see the attachment of the AXIS2C-753 Jira to the relevant test case,
> Program crashes if attribute is of type axutil_qname_t*
> -------------------------------------------------------
>
> Key: AXIS2C-771
> URL: https://issues.apache.org/jira/browse/AXIS2C-771
> Project: Axis2-C
> Issue Type: Bug
> Components: code generation
> Affects Versions: Current (Nightly)
> Environment: Win + UNIX
> Reporter: Michael Mole
> Priority: Critical
>
> If I have a complex type with an attribute of type axutil_qname_t*, my
> program crashes when serializing because the generated code is trying to
> write to unallocated memory.
> For example, my complex type looks like this:
> <complexType name="Foo">
> <sequence>
> <element name="content" type="anyType" minOccurs="0">
> </element>
> </sequence>
> <attribute name="property" use="required" type="QName">
> </attribute>
> </complexType>
> The generated code in the serialize method looks like this:
> if(!parent_tag_closed)
> {
> sprintf(text_value, "%s:%s",
> axutil_qname_get_prefix(_Foo->property_property, env),
>
> axutil_qname_get_localpart(_Foo->property_property, env));
> string_to_stream = (axis2_char_t*) AXIS2_MALLOC
> (env-> allocator, sizeof (axis2_char_t) *
> (64 +
> strlen("property" +
>
> strlen(text_value))));
> sprintf(string_to_stream, " ns2:property=\"%s\"",
> text_value);
> axutil_stream_write(stream, env, string_to_stream,
> axutil_strlen(string_to_stream));
> AXIS2_FREE(env-> allocator, string_to_stream);
> AXIS2_FREE(env->allocator, text_value);
> ...
> This crashes when trying to get the strlen(text_value) when assigning
> string_to_stream. This is because text_value had never been allocated memory.
> I found that adding this line above the first sprintf allowed the code to
> proceed:
> text_value = (axis2_char_t*) AXIS2_MALLOC ( env-> allocator, sizeof
> (axis2_char_t) *
> ( 64 +
> strlen(axutil_qname_get_prefix(_Foo>property_property, env)) +
>
> strlen(axutil_qname_get_localpart(_Foo>property_property, env)) ) );
> This should be added in CADBBeanTemplateSource.xsl at approximately line 2475
> when the axutil_qname_t attribute code is generated.
--
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]