From 49e2ab2cc5c7f13bb84ef94893e14955ce11a875 Mon Sep 17 00:00:00 2001 From: markt Date: Sat, 10 Feb 2007 18:55:08 +0000 Subject: [PATCH] Port SCRIPT_NAME fix git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@505743 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/servlets/CGIServlet.java | 16 +++++++++------- webapps/docs/changelog.xml | 9 +++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/java/org/apache/catalina/servlets/CGIServlet.java b/java/org/apache/catalina/servlets/CGIServlet.java index c37d99aaa..4219c8a52 100644 --- a/java/org/apache/catalina/servlets/CGIServlet.java +++ b/java/org/apache/catalina/servlets/CGIServlet.java @@ -884,7 +884,7 @@ public final class CGIServlet extends HttpServlet { String path = null; String name = null; String scriptname = null; - String cginame = null; + String cginame = ""; if ((webAppRootDir != null) && (webAppRootDir.lastIndexOf(File.separator) == @@ -913,8 +913,9 @@ public final class CGIServlet extends HttpServlet { if (debug >= 3) { log("findCGI: currentLoc=" + currentLocation); } - currentLocation = new File(currentLocation, - (String) dirWalker.nextElement()); + String nextElement = (String) dirWalker.nextElement(); + currentLocation = new File(currentLocation, nextElement); + cginame = cginame + "/" + nextElement; } if (!currentLocation.isFile()) { return new String[] { null, null, null, null }; @@ -924,13 +925,14 @@ public final class CGIServlet extends HttpServlet { } path = currentLocation.getAbsolutePath(); name = currentLocation.getName(); - cginame = (currentLocation.getParent() + File.separator). - substring(webAppRootDir.length()) + name; if (".".equals(contextPath)) { - scriptname = servletPath + cginame; + scriptname = servletPath; } else { - scriptname = contextPath + servletPath + cginame; + scriptname = contextPath + servletPath; + } + if (!servletPath.equals(cginame)) { + scriptname = scriptname + cginame; } } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 334ff626a..e2037a552 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -14,6 +14,15 @@ +
+ + + + Fix formatting of CGI variable SCRIPT_NAME. (markt) + + + +
-- 2.11.0