[shibboleth-sp2] 09/100: Target URL computation was unreliable.
Ferenc Wágner
wferi-guest at moszumanska.debian.org
Tue Jan 26 21:29:12 UTC 2016
This is an automated email from the git hooks/post-receive script.
wferi-guest pushed a commit to annotated tag 1.2.1
in repository shibboleth-sp2.
commit fc1928d1311ecc954d02e962629fd0f9659e16d7
Author: Scott Cantor <cantor.2 at osu.edu>
Date: Sat Aug 14 04:24:45 2004 +0000
Target URL computation was unreliable.
---
isapi_shib/isapi_shib.cpp | 49 ++++++++++++++++++++++++++++-------------------
1 file changed, 29 insertions(+), 20 deletions(-)
diff --git a/isapi_shib/isapi_shib.cpp b/isapi_shib/isapi_shib.cpp
index 2007a05..e707d9d 100644
--- a/isapi_shib/isapi_shib.cpp
+++ b/isapi_shib/isapi_shib.cpp
@@ -158,6 +158,11 @@ extern "C" BOOL WINAPI GetFilterVersion(PHTTP_FILTER_VERSION pVer)
{
if (!pVer)
return FALSE;
+ else if (g_Config) {
+ LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL,
+ "Reentrant filter initialization, ignoring...");
+ return TRUE;
+ }
try
{
@@ -362,23 +367,25 @@ IRequestMapper::Settings map_request(
const char* scheme=site.m_scheme.c_str();
if (!scheme || !*scheme || !g_bNormalizeRequest)
scheme=pfc->fIsSecurePort ? "https" : "http";
-
- // Start with path.
- if (!url.empty())
- target=static_cast<char*>(url);
-
- // If port is non-default, prepend it.
- if ((!strcmp(scheme,"http") && port!="80") || (!strcmp(scheme,"https") && port!="443"))
- target = ':' + static_cast<char*>(port) + target;
+ // Start with scheme and hostname.
if (g_bNormalizeRequest) {
- target = string(scheme) + "://" + site.m_name + target;
+ target = string(scheme) + "://" + site.m_name;
}
else {
dynabuf name(64);
GetServerVariable(pfc,"SERVER_NAME",name,64);
- target = string(scheme) + "://" + static_cast<char*>(name) + target;
+ target = string(scheme) + "://" + static_cast<char*>(name);
}
+
+ // If port is non-default, append it.
+ if ((!strcmp(scheme,"http") && port!="80") || (!strcmp(scheme,"https") && port!="443"))
+ target = target + ':' + static_cast<char*>(port);
+
+ // Append path.
+ if (!url.empty())
+ target+=static_cast<char*>(url);
+
return mapper->getSettingsFromParsedURL(scheme,site.m_name.c_str(),strtoul(port,NULL,10),url);
}
@@ -774,23 +781,25 @@ IRequestMapper::Settings map_request(
const char* scheme=site.m_scheme.c_str();
if (!scheme || !*scheme || !g_bNormalizeRequest)
scheme=lpECB->lpszMethod;
-
- // Start with path.
- if (!url.empty())
- target=static_cast<char*>(url);
-
- // If port is non-default, prepend it.
- if ((!strcmp(scheme,"http") && port!="80") || (!strcmp(scheme,"https") && port!="443"))
- target = ':' + static_cast<char*>(port) + target;
+ // Start with scheme and hostname.
if (g_bNormalizeRequest) {
- target = string(scheme) + "://" + site.m_name + target;
+ target = string(scheme) + "://" + site.m_name;
}
else {
dynabuf name(64);
GetServerVariable(lpECB,"SERVER_NAME",name,64);
- target = string(scheme) + "://" + static_cast<char*>(name) + target;
+ target = string(scheme) + "://" + static_cast<char*>(name);
}
+
+ // If port is non-default, append it.
+ if ((!strcmp(scheme,"http") && port!="80") || (!strcmp(scheme,"https") && port!="443"))
+ target = target + ':' + static_cast<char*>(port);
+
+ // Append path.
+ if (!url.empty())
+ target+=static_cast<char*>(url);
+
return mapper->getSettingsFromParsedURL(scheme,site.m_name.c_str(),strtoul(port,NULL,10),url);
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-shibboleth/shibboleth-sp2.git
More information about the Pkg-shibboleth-devel
mailing list