Search
j0ke.net Open Build Service
>
Projects
>
SUSE
:
Manager
:
1.2
>
tomcat6
> apache-tomcat-CVE-2010-2227.patch
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File apache-tomcat-CVE-2010-2227.patch of Package tomcat6
Index: tomcat6-6.0.18/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/Http11Processor.java =================================================================== --- tomcat6-6.0.18.orig/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/Http11Processor.java 2008-07-22 02:01:28.000000000 +0200 +++ tomcat6-6.0.18/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/Http11Processor.java 2010-07-15 14:54:01.974001302 +0200 @@ -74,6 +74,13 @@ StringManager.getManager(Constants.Package); + /* + * Tracks how many internal filters are in the filter library so they + * are skipped when looking for pluggable filters. + */ + private int pluggableFilterIndex = Integer.MAX_VALUE; + + // ------------------------------------------------------------ Constructor @@ -1628,6 +1635,8 @@ //inputBuffer.addFilter(new GzipInputFilter()); outputBuffer.addFilter(new GzipOutputFilter()); + pluggableFilterIndex = inputBuffer.filterLibrary.length; + } @@ -1646,7 +1655,7 @@ (inputFilters[Constants.CHUNKED_FILTER]); contentDelimitation = true; } else { - for (int i = 2; i < inputFilters.length; i++) { + for (int i = pluggableFilterIndex; i < inputFilters.length; i++) { if (inputFilters[i].getEncodingName() .toString().equals(encodingName)) { inputBuffer.addActiveFilter(inputFilters[i]); Index: tomcat6-6.0.18/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/Http11AprProcessor.java =================================================================== --- tomcat6-6.0.18.orig/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/Http11AprProcessor.java 2008-07-22 02:01:29.000000000 +0200 +++ tomcat6-6.0.18/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/Http11AprProcessor.java 2010-07-15 14:54:02.016875938 +0200 @@ -78,6 +78,12 @@ protected static StringManager sm = StringManager.getManager(Constants.Package); + /* + * Tracks how many internal filters are in the filter library so they + * are skipped when looking for pluggable filters. + */ + private int pluggableFilterIndex = Integer.MAX_VALUE; + // ----------------------------------------------------------- Constructors @@ -1716,6 +1722,8 @@ //inputBuffer.addFilter(new GzipInputFilter()); outputBuffer.addFilter(new GzipOutputFilter()); + pluggableFilterIndex = inputBuffer.filterLibrary.length; + } @@ -1734,7 +1742,7 @@ (inputFilters[Constants.CHUNKED_FILTER]); contentDelimitation = true; } else { - for (int i = 2; i < inputFilters.length; i++) { + for (int i = pluggableFilterIndex; i < inputFilters.length; i++) { if (inputFilters[i].getEncodingName() .toString().equals(encodingName)) { inputBuffer.addActiveFilter(inputFilters[i]); Index: tomcat6-6.0.18/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/Http11NioProcessor.java =================================================================== --- tomcat6-6.0.18.orig/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/Http11NioProcessor.java 2008-07-22 02:01:28.000000000 +0200 +++ tomcat6-6.0.18/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/Http11NioProcessor.java 2010-07-15 14:54:02.108875188 +0200 @@ -81,6 +81,13 @@ */ protected SSLSupport sslSupport; + /* + * Tracks how many internal filters are in the filter library so they + * are skipped when looking for pluggable filters. + */ + private int pluggableFilterIndex = Integer.MAX_VALUE; + + // ----------------------------------------------------------- Constructors @@ -1736,6 +1743,8 @@ //inputBuffer.addFilter(new GzipInputFilter()); outputBuffer.addFilter(new GzipOutputFilter()); + pluggableFilterIndex = inputBuffer.filterLibrary.length; + } @@ -1754,7 +1763,7 @@ (inputFilters[Constants.CHUNKED_FILTER]); contentDelimitation = true; } else { - for (int i = 2; i < inputFilters.length; i++) { + for (int i = pluggableFilterIndex; i < inputFilters.length; i++) { if (inputFilters[i].getEncodingName() .toString().equals(encodingName)) { inputBuffer.addActiveFilter(inputFilters[i]); Index: tomcat6-6.0.18/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/filters/BufferedInputFilter.java =================================================================== --- tomcat6-6.0.18.orig/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/filters/BufferedInputFilter.java 2008-07-22 02:01:29.000000000 +0200 +++ tomcat6-6.0.18/apache-tomcat-6.0.18-src/java/org/apache/coyote/http11/filters/BufferedInputFilter.java 2010-07-15 14:54:02.142345894 +0200 @@ -102,10 +102,12 @@ } public void recycle() { - if (buffered.getBuffer().length > 65536) { - buffered = null; - } else { - buffered.recycle(); + if (buffered != null) { + if (buffered.getBuffer().length > 65536) { + buffered = null; + } else { + buffered.recycle(); + } } tempRead.recycle(); hasRead = false;