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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]