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

Reply via email to