This is an automated email from the ASF dual-hosted git repository. scantor pushed a commit to branch xerces-3.3 in repository https://gitbox.apache.org/repos/asf/xerces-c.git
The following commit(s) were added to refs/heads/xerces-3.3 by this push: new 259f17bca NetAccessors should only operate on absolute URLs. 259f17bca is described below commit 259f17bcaedddccf0b9bccc165ac4b291f4eb4bf Author: Scott Cantor <canto...@osu.edu> AuthorDate: Wed Sep 25 09:55:43 2024 -0400 NetAccessors should only operate on absolute URLs. --- src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp | 4 ++++ .../util/NetAccessors/MacOSURLAccessCF/URLAccessCFBinInputStream.cpp | 4 ++++ src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp | 4 ++++ src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp b/src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp index 513a9e8c1..4fa5a93c9 100644 --- a/src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp +++ b/src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp @@ -75,6 +75,10 @@ CurlURLInputStream::CurlURLInputStream(const XMLURL& urlSource, const XMLNetHTTP , fPayloadLen(0) , fContentType(0) { + if (urlSource.isRelative()) { + ThrowXML(MalformedURLException, XMLExcepts::URL_NoProtocolPresent); + } + // Allocate the curl multi handle fMulti = curl_multi_init(); diff --git a/src/xercesc/util/NetAccessors/MacOSURLAccessCF/URLAccessCFBinInputStream.cpp b/src/xercesc/util/NetAccessors/MacOSURLAccessCF/URLAccessCFBinInputStream.cpp index 2cc92ed3e..94f395f62 100644 --- a/src/xercesc/util/NetAccessors/MacOSURLAccessCF/URLAccessCFBinInputStream.cpp +++ b/src/xercesc/util/NetAccessors/MacOSURLAccessCF/URLAccessCFBinInputStream.cpp @@ -35,6 +35,10 @@ URLAccessCFBinInputStream::URLAccessCFBinInputStream(const XMLURL& urlSource) mDataRef(NULL) { // Figure out what we're dealing with + if (urlSource.isRelative()) { + ThrowXML(MalformedURLException, XMLExcepts::URL_NoProtocolPresent); + } + const XMLCh* urlText = urlSource.getURLText(); unsigned int urlLength = XMLString::stringLen(urlText); diff --git a/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp b/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp index 9032f1adc..e3adfb273 100644 --- a/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp +++ b/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp @@ -96,6 +96,10 @@ UnixHTTPURLInputStream::UnixHTTPURLInputStream(const XMLURL& urlSource, const XM : BinHTTPInputStreamCommon(urlSource.getMemoryManager()), fSocket(0) { + if (urlSource.isRelative()) { + ThrowXML(MalformedURLException, XMLExcepts::URL_NoProtocolPresent); + } + // // Convert the hostName to the platform's code page for gethostbyname and // inet_addr functions. diff --git a/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp b/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp index 289519e20..d62c3bfeb 100644 --- a/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp +++ b/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp @@ -293,6 +293,10 @@ BinHTTPURLInputStream::BinHTTPURLInputStream(const XMLURL& urlSource, const XMLN : BinHTTPInputStreamCommon(urlSource.getMemoryManager()) , fSocketHandle(0) { + if (urlSource.isRelative()) { + ThrowXML(MalformedURLException, XMLExcepts::URL_NoProtocolPresent); + } + MemoryManager *memoryManager = urlSource.getMemoryManager(); // Check if we need to load the winsock library. While locking the --------------------------------------------------------------------- To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org