[
https://issues.apache.org/jira/browse/AXIS2C-944?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bill Mitchell resolved AXIS2C-944.
----------------------------------
Resolution: Fixed
Assignee: Bill Mitchell
This fix has been applied as svn rev 618521.
> guththila parser ignores XML scope rules on namespace declarations with the
> same prefix
> ---------------------------------------------------------------------------------------
>
> Key: AXIS2C-944
> URL: https://issues.apache.org/jira/browse/AXIS2C-944
> Project: Axis2-C
> Issue Type: Bug
> Components: guththila
> Affects Versions: Current (Nightly)
> Environment: Windows XP, Visual Studio 2005, guththila, libcurl
> Reporter: Bill Mitchell
> Assignee: Bill Mitchell
> Fix For: 1.3.0
>
> Attachments: diff.txt
>
>
> The guththila parser looks for a match on the namespace prefix/URI from the
> outermost element inwards. This violates the scope rules for XML namespaces,
> see http://www.w3.org/TR/REC-xml-names/. This problem holds for both
> incoming messages in guththila_xml_parser.c and outgoing messages in
> guththila_xml_writer.c. Essentially every loop involving
> guththila_stack_get_by_index() is suspect, and either needs to start at
> (stack_size - 1) and go backwards, or fetch the namespace at the (stack_size
> - 1 - i) index.
> I uncovered this by inspection, not by testing, so there is some chance that
> my understanding is incorrect. But I looked at guththila_stack.c and indeed
> for index 0 it returns the outermost/first element pushed, so there is no
> tricky logic there to get the stack in the other order. Of course, one could
> indeed fix this problem by changing guththila_stack_get_by_index() to return
> the elements from the innermost/most recently pushed back out to the
> outermost. This would be the easiest fix to make, and the safest in that it
> would not change the logic in any of the existing loops, although it would
> seem less clear to the casual reader.
> In other words, the current logic:
> guththila_stack_get_by_index(
> guththila_stack_t * stack,
> int index,
> const axutil_env_t * env)
> {
> return index < stack->top ? stack->data[index] : NULL;
> }
> could be changed to read:
> {
> return index < stack->top ? stack->data[stack->top - index - 1] : NULL;
> }
--
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]