diff --git a/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp b/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp index 1c6c992c8696815858505deb8046d79cffd427fb..f2da962b9f917af6b8224ed9c47261a4c037d246 100644 --- a/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp +++ b/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp @@ -206,6 +206,10 @@ UnixHTTPURLInputStream::UnixHTTPURLInputStream(const XMLURL& urlSource, const XM XMLCh *newURLString = findHeader("Location"); ArrayJanitor<XMLCh> janNewURLString(newURLString, memoryManager); + if(newURLString == 0 || *newURLString == 0) { + ThrowXMLwithMemMgr1(NetAccessorException, XMLExcepts::File_CouldNotOpenFile, url.getURLText(), memoryManager); + } + XMLURL newURL(memoryManager); newURL.setURL(url, newURLString); if(newURL.getProtocol() != XMLURL::HTTP) { diff --git a/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp b/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp index 8d9ab44450049b215b9804fae138ef939c293f7e..00c2f59688698610e70434c7cfa4d3afd7097697 100644 --- a/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp +++ b/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp @@ -426,6 +426,10 @@ BinHTTPURLInputStream::BinHTTPURLInputStream(const XMLURL& urlSource, const XMLN XMLCh *newURLString = findHeader("Location"); ArrayJanitor<XMLCh> janNewURLString(newURLString, memoryManager); + if(newURLString == 0 || *newURLString == 0) { + ThrowXMLwithMemMgr1(NetAccessorException, XMLExcepts::File_CouldNotOpenFile, url.getURLText(), memoryManager); + } + XMLURL newURL(memoryManager); newURL.setURL(url, newURLString); if(newURL.getProtocol() != XMLURL::HTTP) {