Author: markt
Date: Sun Jan 6 04:27:05 2008
New Revision: 609298
URL: http://svn.apache.org/viewvc?rev=609298&view=rev
Log:
Fix bug in CGI servlet that causes it to fail when included
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java
tomcat/container/tc5.5.x/webapps/docs/changelog.xml
tomcat/current/tc5.5.x/STATUS.txt
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java
URL:
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java?rev=609298&r1=609297&r2=609298&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java
(original)
+++
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java
Sun Jan 6 04:27:05 2008
@@ -797,10 +797,26 @@
*/
protected void setupFromRequest(HttpServletRequest req)
throws UnsupportedEncodingException {
-
- this.contextPath = req.getContextPath();
- this.servletPath = req.getServletPath();
- this.pathInfo = req.getPathInfo();
+
+ boolean isIncluded = false;
+
+ // Look to see if this request is an include
+ if (req.getAttribute(Globals.INCLUDE_REQUEST_URI_ATTR) != null) {
+ isIncluded = true;
+ }
+ if (isIncluded) {
+ this.contextPath = (String) req.getAttribute(
+ Globals.INCLUDE_CONTEXT_PATH_ATTR);
+ this.servletPath = (String) req.getAttribute(
+ Globals.INCLUDE_SERVLET_PATH_ATTR);
+ this.pathInfo = (String) req.getAttribute(
+ Globals.INCLUDE_PATH_INFO_ATTR);
+ } else {
+ this.contextPath = req.getContextPath();
+ this.servletPath = req.getServletPath();
+ this.pathInfo = req.getPathInfo();
+ }
+
// If getPathInfo() returns null, must be using extension mapping
// In this case, pathInfo should be same as servletPath
if (this.pathInfo == null) {
@@ -814,7 +830,13 @@
if (req.getMethod().equals("GET")
|| req.getMethod().equals("POST")
|| req.getMethod().equals("HEAD")) {
- String qs = req.getQueryString();
+ String qs;
+ if (isIncluded) {
+ qs = (String) req.getAttribute(
+ Globals.INCLUDE_QUERY_STRING_ATTR);
+ } else {
+ qs = req.getQueryString();
+ }
if (qs != null && qs.indexOf("=") == -1) {
StringTokenizer qsTokens = new StringTokenizer(qs, "+");
while ( qsTokens.hasMoreTokens() ) {
Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?rev=609298&r1=609297&r2=609298&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Sun Jan 6 04:27:05 2008
@@ -66,6 +66,10 @@
<fix>
<bug>43687</bug> Remove conditional headers on Form Auth replay, since
the UA (esp. FireFox) isn't expecting it. (billbarker)
</fix>
+ <fix>
+ Fix bug in CGI Servlet that caused it to fail when a CGI resource was
+ included in another resource. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Jasper" >
Modified: tomcat/current/tc5.5.x/STATUS.txt
URL:
http://svn.apache.org/viewvc/tomcat/current/tc5.5.x/STATUS.txt?rev=609298&r1=609297&r2=609298&view=diff
==============================================================================
--- tomcat/current/tc5.5.x/STATUS.txt (original)
+++ tomcat/current/tc5.5.x/STATUS.txt Sun Jan 6 04:27:05 2008
@@ -25,11 +25,6 @@
PATCHES PROPOSED TO BACKPORT:
[ New proposals should be added at the end of the list ]
-* Fix bug in CGI servlet that causes it to fail when included
- http://svn.apache.org/viewvc?view=rev&revision=595802
- +1: markt, fhanik, funkman, pero
- -1:
-
* JDT location return 404
http://people.apache.org/~fhanik/patches/jdt-loc.patch
Backport from Tomcat 6
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]