Xerces-C++
  1. Xerces-C++
  2. XERCESC-1968

Xerces livelocks while reading external DTD if socket closes prematurely

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0.1, 3.1.1
    • Fix Version/s: 3.2.0
    • Component/s: Utilities
    • Labels:
      None
    • Environment:
      Windows 7 64bit, VS 2008 SP1, distributed and self-built binaries

      Description

      When loading an external DTD and if the socket on the other end closes before any data is read, xerces can get into a live-lock situation.
      If the OS call "recv" returns 0, which it can, the loop in BinHTTPInputStreamCommon::sendRequest will spin forever.

      The attached contains an example and sample content which demonstrates the issue.

        Activity

        Hide
        Alberto Massari added a comment - - edited

        A fix is in SVN since last year, but I forgot to close the bug

        Show
        Alberto Massari added a comment - - edited A fix is in SVN since last year, but I forgot to close the bug

          People

          • Assignee:
            Alberto Massari
            Reporter:
            Charlie Lawrence
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development