Uploaded image for project: 'Axis-C++'
  1. Axis-C++
  2. AXISCPP-222

infinite loop in XMLPaserExpat when it encounters bad XML

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Won't Fix
    • 1.2 Final, 1.3 Beta
    • 1.4 Alpha
    • Parser Library - Expat
    • None
    • HP-UX with GCC compiler, Expat 1.95.7

    Description

      Code when encounters only one event in XML events stack, it checks if last event is CHAR data. If last event is CHAR data; then, code proceeds to parse more data. Infinite loop is triggered when CHAR is the last data in stream. Eventhough stream returns TRANSPORT_FINISHED, XMLParserExpat goes into an infinite loop requesting for more data to parse.

      I accidently trigger the bug by setting the content-lenght smaller than message, then the web server clipped SOAP message. If Axis w/ Expat parser encounters a message that was clipped/truncated, it will go into infinite if CHAR data is last data in stream.

      I am attaching the fix I used.

      Attachments

        1. XMLParserExpat.cpp.diff_w_v1.9
          13 kB
          James Guido

        Issue Links

          Activity

            People

              Unassigned Unassigned
              james_guido James Guido
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: