Sophie

Sophie

distrib > Mandriva > 2009.1 > x86_64 > media > main-testing-src > by-pkgid > 2013cd8321cdcd1c23a12530bb1db679 > files > 22

tomcat5-5.5.27-0.3.0.2mdv2009.1.src.rpm


  http://svn.apache.org/viewvc?view=rev&revision=781362


diff -Naur tomcat5-5.5.27/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java tomcat5-5.5.27.oden/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java
--- tomcat5-5.5.27/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java	2008-08-29 05:13:37.000000000 +0200
+++ tomcat5-5.5.27.oden/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java	2009-06-18 19:16:41.000000000 +0200
@@ -56,6 +56,7 @@
 import org.apache.coyote.Request;
 import org.apache.coyote.RequestGroupInfo;
 import org.apache.coyote.RequestInfo;
+import org.apache.coyote.ActionCode;
 import org.apache.tomcat.util.threads.ThreadPool;
 import org.apache.tomcat.util.threads.ThreadPoolRunnable;
 
@@ -854,6 +855,7 @@
                     status= invoke( recv, ep );
                     if( status != JkHandler.OK ) {
                         log.warn("processCallbacks status " + status );
+                        ep.action(ActionCode.ACTION_CLOSE, ep.getRequest().getResponse());
                         return false;
                     }
                     synchronized(this) {
diff -Naur tomcat5-5.5.27/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/ChannelSocket.java tomcat5-5.5.27.oden/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/ChannelSocket.java
--- tomcat5-5.5.27/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/ChannelSocket.java	2008-08-29 05:13:37.000000000 +0200
+++ tomcat5-5.5.27.oden/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/ChannelSocket.java	2009-06-18 19:18:37.000000000 +0200
@@ -46,6 +46,7 @@
 import org.apache.coyote.Request;
 import org.apache.coyote.RequestGroupInfo;
 import org.apache.coyote.RequestInfo;
+import org.apache.coyote.ActionCode;
 import org.apache.tomcat.util.threads.ThreadPool;
 import org.apache.tomcat.util.threads.ThreadPoolRunnable;
 
@@ -703,6 +704,7 @@
                 status= this.invoke( recv, ep );
                 if( status!= JkHandler.OK ) {
                     log.warn("processCallbacks status " + status );
+                    ep.action(ActionCode.ACTION_CLOSE, ep.getRequest().getResponse());
                     break;
                 }
             }
diff -Naur tomcat5-5.5.27/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/HandlerRequest.java tomcat5-5.5.27.oden/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/HandlerRequest.java
--- tomcat5-5.5.27/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/HandlerRequest.java	2008-08-29 05:13:37.000000000 +0200
+++ tomcat5-5.5.27.oden/apache-tomcat-5.5.27-src/connectors/jk/java/org/apache/jk/common/HandlerRequest.java	2009-06-18 19:18:56.000000000 +0200
@@ -265,8 +265,16 @@
                                  ((Request)ep.getRequest()).unparsedURI());
                 }
             } catch( Exception ex ) {
+                /* If we are here it is because we have a bad header or something like that */
                 log.error( "Error decoding request ", ex );
                 msg.dump( "Incomming message");
+                Response res=ep.getRequest().getResponse();
+                if ( res==null ) {
+                    res=new Response();
+                    ep.getRequest().setResponse(res);
+                }
+                res.setMessage("Bad Request");
+                res.setStatus(400);
                 return ERROR;
             }