gareth      2003/07/24 02:32:52

  Modified:    c/src/xercesc/util XMLUri.cpp
  Log:
  Fix for bug #2005. Patch by Michael Glavassevich.
  
  'scheme:#fragment' is not a valid URI, however from inspecting the code it
  seems like Xerces-C will accept 'URIs' of this form. The ':' must be followed
  by either a '/' or a uric_no_slash.
  
  Revision  Changes    Path
  1.13      +6 -4      xml-xerces/c/src/xercesc/util/XMLUri.cpp
  
  Index: XMLUri.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLUri.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- XMLUri.cpp        16 May 2003 06:01:53 -0000      1.12
  +++ XMLUri.cpp        24 Jul 2003 09:32:52 -0000      1.13
  @@ -395,6 +395,7 @@
        }
   
        int index = 0;
  +     bool foundScheme = false;
   
        // Check for scheme, which must be before `/'. Also handle names with
        // DOS drive letters ('D:'), so 1-character schemes are not allowed.
  @@ -413,17 +414,18 @@
       }
        else
       {
  -        initializeScheme(trimedUriSpec);
  +        foundScheme = true;
  +     initializeScheme(trimedUriSpec);
           index = XMLString::stringLen(fScheme)+1;
       }
   
       // It's an error if we stop here
  -    if (index == trimedUriSpecLen)
  +    if (index == trimedUriSpecLen || (foundScheme && (trimedUriSpec[index] == 
chPound)))
       {
           ThrowXML1(MalformedURLException
                   , XMLExcepts::XMLNUM_URI_Component_Empty
                   , errMsg_PATH);
  -     }
  +    }
   
        // two slashes means generic URI syntax, so we get the authority
       XMLCh* authUriSpec = (XMLCh*) fMemoryManager->allocate
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to