diff --git a/apache-tomcat-9.0.36-src.tar.gz b/apache-tomcat-9.0.36-src.tar.gz deleted file mode 100644 index dcb4f8c..0000000 --- a/apache-tomcat-9.0.36-src.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3444bfabf7a4f88b3276d121541129593ac1f871b6d4eaa31104cee098fd9394 -size 5890912 diff --git a/apache-tomcat-9.0.36-src.tar.gz.asc b/apache-tomcat-9.0.36-src.tar.gz.asc deleted file mode 100644 index 17b01fc..0000000 --- a/apache-tomcat-9.0.36-src.tar.gz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCAAdFiEEqcXfTSLpmZjZh1pREMAcWi9gWecFAl7X294ACgkQEMAcWi9g -Wedinw/+IaqN35TbauWtNswTV9nwYk76PPphvnnYu87upE9ZwD1xT/qcmT5PD1sM -08t34laxrawOHJThigK5pmbIcP+P2gWnSwKwS6NH0eT9JQWNJZ92fX4hhR6TFpcE -TKqzAHPlnqwqijNPNmS8hg58sSxni/ScB7e/Dk8JhGnv4YXSdrjdOcWEC2Igfipo -sK8cnBuP8nPdB4GnGFYdz34SG9WqNSXIv/4kkMDvP00bm4jvrPcf6dnuAosrtq3l -ipTIFH7LIfOcC9rSjeOAfvtqDD5hyV1plJdwVE1FYOm0BvCDixvRfKDBbf6Ka9U5 -Y6QGKzfQwrWZMv/COVnoBpKmXTTQNAl0lX97fZP2bhgLvKJB4SClAChrZuOIrMhq -U4hMFvVd51+YscHXR4idgtIL3sI16XiAoBGStsVLXWstYAmud/EqaQVNwwAdCY13 -YcMjZEHaqyMLMb6rJe305tE0a2pMqErXUKqPuHiNIvaLQN4qa5tw3g/czOQaeJpq -A3cQeGQQCd4N2clUhgFfr+RGVmA7TUo23/w1zQMjmnjVvn2QFtBOybcKE5kGdGCF -YmMQ0zD+SuYUR0V0a//xdA24XriG3PfkqJ/x3+eja+P1FlJ5DzJtX2kpk8BotETT -jVR8IKMQ/mGMkgBmvVVvrVx76qZaCuI/2RG/4SNh/hhBXzPEeQE= -=Sr54 ------END PGP SIGNATURE----- diff --git a/apache-tomcat-9.0.39-src.tar.gz b/apache-tomcat-9.0.39-src.tar.gz new file mode 100644 index 0000000..c49ee3b --- /dev/null +++ b/apache-tomcat-9.0.39-src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f6ed1a6ae4f9a67da9e75f79ba6629ce309f7101bce072e1b52c7abb6e2a93c +size 5966825 diff --git a/apache-tomcat-9.0.39-src.tar.gz.asc b/apache-tomcat-9.0.39-src.tar.gz.asc new file mode 100644 index 0000000..b768589 --- /dev/null +++ b/apache-tomcat-9.0.39-src.tar.gz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEqcXfTSLpmZjZh1pREMAcWi9gWecFAl98fisACgkQEMAcWi9g +Wed+WQ//QwG6pcX8dVwkyuymZgFS3oKXpJHujnpuY2K4aFzAptkioFH+Fqw+IeJK +hXc/i1IiWw69zJBX1GDhlTFrW9g3cX0KqsUSXkRXo+AATOb5fdIjofnuPDbbXKtN +nK0eQsm+OFh1WW8mbMVZSgQ3uqbVJYwukZCjwelrdDLKuhl2yHFWGteTQOTo0LdU +cgYrEenMp5c+hBVBw8iJ4HUbr2NBfXRD0KRUOD9m4f75BJshVNFxMUu0WOENIkNw +JixJIYHhf7k+eXCJUHKcV52haHsStaWcqi+2Pcg7sOl33bKjL4H4ANH+WLqbzANF +NDY3YxV71w+yC5MxPRTjTnIfUNYOcARs19tVVORaUzNqiRIY/ymur7jZi9bHgnZW +tZ/ldQKDOWmfuRgRPbgKFvpZubiECy9EiILVSDZcU2HRNGwEpboRkx+RZtavGvnm +DizEN8beYgsr4Xf/62p+BhsDGVVKEmgVIecPDiwFWoZwv3lmC31809uHze6wlVge +sFFNS1ly/xiNjLPXzPx1XQ4nLsLVC7ERKG0v1b2NmH1oayWXeRqDzTNV9/d420xU +nCWNg36Y8SEiCdiYpKYladggwmg5j5VWx9H3DuDWxrrqhOqJBOLwC3fnTm9slLqC +lLdaflcWqqtj6v1qmhDwnSesCfzubN/XYtT2eIWYMnt1OHuFRW0= +=l6Lm +-----END PGP SIGNATURE----- diff --git a/tomcat-9.0-CVE-2020-13943.patch b/tomcat-9.0-CVE-2020-13943.patch deleted file mode 100644 index 82e0744..0000000 --- a/tomcat-9.0-CVE-2020-13943.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 55911430df13f8c9998fbdee1f9716994d2db59b Mon Sep 17 00:00:00 2001 -From: Mark Thomas -Date: Thu, 23 Jul 2020 17:43:45 +0100 -Subject: [PATCH] Move check for current streams to end of header parsing. - ---- - java/org/apache/coyote/http2/Http2Parser.java | 2 +- - .../coyote/http2/Http2UpgradeHandler.java | 24 ++++++++++--------- - .../coyote/http2/TestHttp2Section_5_1.java | 20 ++++++++++------ - 3 files changed, 27 insertions(+), 19 deletions(-) - -Index: apache-tomcat-9.0.36-src/java/org/apache/coyote/http2/Http2Parser.java -=================================================================== ---- apache-tomcat-9.0.36-src.orig/java/org/apache/coyote/http2/Http2Parser.java -+++ apache-tomcat-9.0.36-src/java/org/apache/coyote/http2/Http2Parser.java -@@ -738,7 +738,7 @@ class Http2Parser { - HeaderEmitter headersStart(int streamId, boolean headersEndStream) - throws Http2Exception, IOException; - void headersContinue(int payloadSize, boolean endOfHeaders); -- void headersEnd(int streamId) throws ConnectionException; -+ void headersEnd(int streamId) throws Http2Exception; - - // Priority frames (also headers) - void reprioritise(int streamId, int parentStreamId, boolean exclusive, int weight) -Index: apache-tomcat-9.0.36-src/java/org/apache/coyote/http2/Http2UpgradeHandler.java -=================================================================== ---- apache-tomcat-9.0.36-src.orig/java/org/apache/coyote/http2/Http2UpgradeHandler.java -+++ apache-tomcat-9.0.36-src/java/org/apache/coyote/http2/Http2UpgradeHandler.java -@@ -1451,16 +1451,6 @@ class Http2UpgradeHandler extends Abstra - stream.checkState(FrameType.HEADERS); - stream.receivedStartOfHeaders(headersEndStream); - closeIdleStreams(streamId); -- if (localSettings.getMaxConcurrentStreams() < activeRemoteStreamCount.incrementAndGet()) { -- setConnectionTimeoutForStreamCount(activeRemoteStreamCount.decrementAndGet()); -- // Ignoring maxConcurrentStreams increases the overhead count -- increaseOverheadCount(); -- throw new StreamException(sm.getString("upgradeHandler.tooManyRemoteStreams", -- Long.toString(localSettings.getMaxConcurrentStreams())), -- Http2Error.REFUSED_STREAM, streamId); -- } -- // Valid new stream reduces the overhead count -- reduceOverheadCount(); - return stream; - } else { - if (log.isDebugEnabled()) { -@@ -1528,12 +1518,24 @@ class Http2UpgradeHandler extends Abstra - - - @Override -- public void headersEnd(int streamId) throws ConnectionException { -+ public void headersEnd(int streamId) throws Http2Exception { - Stream stream = getStream(streamId, connectionState.get().isNewStreamAllowed()); - if (stream != null) { - setMaxProcessedStream(streamId); - if (stream.isActive()) { - if (stream.receivedEndOfHeaders()) { -+ -+ if (localSettings.getMaxConcurrentStreams() < activeRemoteStreamCount.incrementAndGet()) { -+ setConnectionTimeoutForStreamCount(activeRemoteStreamCount.decrementAndGet()); -+ // Ignoring maxConcurrentStreams increases the overhead count -+ increaseOverheadCount(); -+ throw new StreamException(sm.getString("upgradeHandler.tooManyRemoteStreams", -+ Long.toString(localSettings.getMaxConcurrentStreams())), -+ Http2Error.REFUSED_STREAM, streamId); -+ } -+ // Valid new stream reduces the overhead count -+ reduceOverheadCount(); -+ - processStreamOnContainerThread(stream); - } - } -Index: apache-tomcat-9.0.36-src/test/org/apache/coyote/http2/TestHttp2Section_5_1.java -=================================================================== ---- apache-tomcat-9.0.36-src.orig/test/org/apache/coyote/http2/TestHttp2Section_5_1.java -+++ apache-tomcat-9.0.36-src/test/org/apache/coyote/http2/TestHttp2Section_5_1.java -@@ -222,11 +222,11 @@ public class TestHttp2Section_5_1 extend - // Expecting - // 1 * headers - // 56k-1 of body (7 * ~8k) -- // 1 * error (could be in any order) -- for (int i = 0; i < 8; i++) { -+ // 1 * error -+ // for a total of 9 frames (could be in any order) -+ for (int i = 0; i < 9; i++) { - parser.readFrame(true); - } -- parser.readFrame(true); - - Assert.assertTrue(output.getTrace(), - output.getTrace().contains("5-RST-[" + -@@ -238,14 +238,20 @@ public class TestHttp2Section_5_1 extend - - // Release the remaining body - sendWindowUpdate(0, (1 << 31) - 2); -- // Allow for the 8k still in the stream window -+ // Allow for the ~8k still in the stream window - sendWindowUpdate(3, (1 << 31) - 8193); - -- // 192k of body (24 * 8k) -- // 1 * error (could be in any order) -- for (int i = 0; i < 24; i++) { -+ // Read until the end of stream 3 -+ while (!output.getTrace().contains("3-EndOfStream")) { - parser.readFrame(true); - } -+ output.clearTrace(); -+ -+ // Confirm another request can be sent once concurrency falls back below limit -+ sendSimpleGetRequest(7); -+ parser.readFrame(true); -+ parser.readFrame(true); -+ Assert.assertEquals(getSimpleResponseTrace(7), output.getTrace()); - } - - diff --git a/tomcat-9.0-osgi-build.patch b/tomcat-9.0-osgi-build.patch index 354a741..0fec32a 100644 --- a/tomcat-9.0-osgi-build.patch +++ b/tomcat-9.0-osgi-build.patch @@ -1,14 +1,17 @@ -Index: apache-tomcat-9.0.35-src/build.xml +Index: apache-tomcat-9.0.37-src/build.xml =================================================================== ---- apache-tomcat-9.0.35-src.orig/build.xml -+++ apache-tomcat-9.0.35-src/build.xml -@@ -3327,6 +3327,9 @@ Read the Building page on the Apache Tom - +--- apache-tomcat-9.0.37-src.orig/build.xml ++++ apache-tomcat-9.0.37-src/build.xml +@@ -3307,6 +3307,12 @@ Read the Building page on the Apache Tom + + - ++ + + ++ ++ + - + diff --git a/tomcat-9.0.31-java8compat.patch b/tomcat-9.0.39-java8compat.patch similarity index 82% rename from tomcat-9.0.31-java8compat.patch rename to tomcat-9.0.39-java8compat.patch index 9423604..2ff7569 100644 --- a/tomcat-9.0.31-java8compat.patch +++ b/tomcat-9.0.39-java8compat.patch @@ -1,7 +1,6 @@ -Index: apache-tomcat-9.0.35-src/java/org/apache/catalina/connector/InputBuffer.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/catalina/connector/InputBuffer.java -+++ apache-tomcat-9.0.35-src/java/org/apache/catalina/connector/InputBuffer.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/catalina/connector/InputBuffer.java apache-tomcat-9.0.39-src/java/org/apache/catalina/connector/InputBuffer.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/catalina/connector/InputBuffer.java 2020-10-06 16:23:46.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/catalina/connector/InputBuffer.java 2021-03-15 18:25:09.761415192 +0100 @@ -389,10 +389,10 @@ public class InputBuffer extends Reader } int n = Math.min(to.remaining(), bb.remaining()); @@ -62,10 +61,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/catalina/connector/InputBuffer.j cb = tmp; tmp = null; } -Index: apache-tomcat-9.0.35-src/java/org/apache/catalina/connector/OutputBuffer.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/catalina/connector/OutputBuffer.java -+++ apache-tomcat-9.0.35-src/java/org/apache/catalina/connector/OutputBuffer.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/catalina/connector/OutputBuffer.java apache-tomcat-9.0.39-src/java/org/apache/catalina/connector/OutputBuffer.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/catalina/connector/OutputBuffer.java 2020-10-06 16:23:46.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/catalina/connector/OutputBuffer.java 2021-03-15 18:25:09.761415192 +0100 @@ -761,10 +761,10 @@ public class OutputBuffer extends Writer int limit = bb.capacity(); int fromLimit = from.limit(); @@ -80,10 +78,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/catalina/connector/OutputBuffer. } if (from.remaining() > 0) { -Index: apache-tomcat-9.0.35-src/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java -+++ apache-tomcat-9.0.35-src/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java apache-tomcat-9.0.39-src/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java 2020-10-06 16:23:49.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java 2021-03-15 18:25:09.761415192 +0100 @@ -18,6 +18,7 @@ package org.apache.catalina.tribes.transport.nio; import java.io.IOException; @@ -137,10 +134,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/catalina/tribes/transport/nio/Ni //did we get a package count = reader.hasPackage()?1:-1; } -Index: apache-tomcat-9.0.35-src/java/org/apache/catalina/tribes/transport/nio/NioSender.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/catalina/tribes/transport/nio/NioSender.java -+++ apache-tomcat-9.0.35-src/java/org/apache/catalina/tribes/transport/nio/NioSender.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/catalina/tribes/transport/nio/NioSender.java apache-tomcat-9.0.39-src/java/org/apache/catalina/tribes/transport/nio/NioSender.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/catalina/tribes/transport/nio/NioSender.java 2020-10-06 16:23:49.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/catalina/tribes/transport/nio/NioSender.java 2021-03-15 18:25:09.761415192 +0100 @@ -20,6 +20,7 @@ package org.apache.catalina.tribes.trans import java.io.EOFException; import java.io.IOException; @@ -205,10 +201,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/catalina/tribes/transport/nio/Ni if (isConnected()) { if (isUdpBased()) dataChannel.register(getSelector(), SelectionKey.OP_WRITE, this); -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/ajp/AjpProcessor.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/ajp/AjpProcessor.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/ajp/AjpProcessor.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/ajp/AjpProcessor.java apache-tomcat-9.0.39-src/java/org/apache/coyote/ajp/AjpProcessor.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/ajp/AjpProcessor.java 2020-10-06 16:23:50.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/ajp/AjpProcessor.java 2021-03-15 18:25:09.761415192 +0100 @@ -21,6 +21,7 @@ import java.io.EOFException; import java.io.IOException; import java.io.InterruptedIOException; @@ -217,7 +212,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/ajp/AjpProcessor.java import java.nio.ByteBuffer; import java.security.NoSuchProviderException; import java.security.cert.CertificateFactory; -@@ -1258,7 +1259,7 @@ public class AjpProcessor extends Abstra +@@ -1253,7 +1254,7 @@ public class AjpProcessor extends Abstra responseMessage.reset(); responseMessage.appendByte(Constants.JK_AJP13_SEND_BODY_CHUNK); @@ -226,10 +221,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/ajp/AjpProcessor.java responseMessage.appendBytes(chunk); responseMessage.end(); socketWrapper.write(blocking, responseMessage.getBuffer(), 0, responseMessage.getLen()); -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/BufferedInputFilter.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http11/filters/BufferedInputFilter.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/BufferedInputFilter.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/BufferedInputFilter.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/BufferedInputFilter.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/BufferedInputFilter.java 2020-10-06 16:23:50.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/BufferedInputFilter.java 2021-03-15 18:25:09.761415192 +0100 @@ -18,6 +18,7 @@ package org.apache.coyote.http11.filters; @@ -268,10 +262,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/BufferedIn } } hasRead = false; -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java 2020-10-06 16:23:50.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java 2021-03-15 18:25:09.761415192 +0100 @@ -18,6 +18,7 @@ package org.apache.coyote.http11.filters import java.io.EOFException; @@ -297,7 +290,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedInp remaining = 0; //we need a CRLF if ((readChunk.position() + 1) >= readChunk.limit()) { -@@ -263,7 +264,7 @@ public class ChunkedInputFilter implemen +@@ -272,7 +273,7 @@ public class ChunkedInputFilter implemen public void recycle() { remaining = 0; if (readChunk != null) { @@ -306,7 +299,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedInp } endChunk = false; needCRLFParse = false; -@@ -363,7 +364,7 @@ public class ChunkedInputFilter implemen +@@ -372,7 +373,7 @@ public class ChunkedInputFilter implemen // Parsing the CRLF increments pos if (!eol) { @@ -315,7 +308,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedInp } } -@@ -415,7 +416,7 @@ public class ChunkedInputFilter implemen +@@ -424,7 +425,7 @@ public class ChunkedInputFilter implemen throwIOException(sm.getString("chunkedInputFilter.invalidCrlf")); } @@ -324,7 +317,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedInp } } -@@ -484,7 +485,7 @@ public class ChunkedInputFilter implemen +@@ -493,7 +494,7 @@ public class ChunkedInputFilter implemen trailingHeaders.append(chr); } @@ -333,7 +326,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedInp } int colonPos = trailingHeaders.getEnd(); -@@ -513,7 +514,7 @@ public class ChunkedInputFilter implemen +@@ -522,7 +523,7 @@ public class ChunkedInputFilter implemen chr = readChunk.get(readChunk.position()); if ((chr == Constants.SP) || (chr == Constants.HT)) { @@ -342,7 +335,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedInp // If we swallow whitespace, make sure it counts towards the // limit placed on trailing header size int newlimit = trailingHeaders.getLimit() -1; -@@ -549,7 +550,7 @@ public class ChunkedInputFilter implemen +@@ -558,7 +559,7 @@ public class ChunkedInputFilter implemen } if (!eol) { @@ -351,10 +344,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedInp } } -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedOutputFilter.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http11/filters/ChunkedOutputFilter.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedOutputFilter.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/ChunkedOutputFilter.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/ChunkedOutputFilter.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/ChunkedOutputFilter.java 2020-10-06 16:23:50.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/ChunkedOutputFilter.java 2021-03-15 18:25:09.761415192 +0100 @@ -18,6 +18,7 @@ package org.apache.coyote.http11.filters import java.io.IOException; @@ -400,10 +392,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/ChunkedOut } buffer.end(); } -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/IdentityInputFilter.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http11/filters/IdentityInputFilter.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/IdentityInputFilter.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/IdentityInputFilter.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/IdentityInputFilter.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/IdentityInputFilter.java 2020-10-06 16:23:50.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/IdentityInputFilter.java 2021-03-15 18:25:09.761415192 +0100 @@ -18,6 +18,7 @@ package org.apache.coyote.http11.filters; @@ -430,10 +421,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/IdentityIn } result = -1; } -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/IdentityOutputFilter.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http11/filters/IdentityOutputFilter.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/IdentityOutputFilter.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/IdentityOutputFilter.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/IdentityOutputFilter.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/IdentityOutputFilter.java 2020-10-06 16:23:50.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/IdentityOutputFilter.java 2021-03-15 18:25:09.761415192 +0100 @@ -17,6 +17,7 @@ package org.apache.coyote.http11.filters; @@ -462,10 +452,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/IdentityOu result = -1; } } else { -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java 2020-10-06 16:23:50.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java 2021-03-15 18:25:09.761415192 +0100 @@ -18,6 +18,7 @@ package org.apache.coyote.http11.filters; @@ -483,10 +472,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/filters/SavedReque input.subtract(byteBuffer); return byteBuffer.remaining(); -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http11/Http11InputBuffer.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/Http11InputBuffer.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/Http11InputBuffer.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/Http11InputBuffer.java 2020-10-06 16:23:50.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/Http11InputBuffer.java 2021-03-15 18:25:09.761415192 +0100 @@ -18,6 +18,7 @@ package org.apache.coyote.http11; import java.io.EOFException; @@ -495,16 +483,16 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.Arrays; -@@ -265,7 +266,7 @@ public class Http11InputBuffer implement +@@ -264,7 +265,7 @@ public class Http11InputBuffer implement activeFilters[i].recycle(); } - byteBuffer.limit(0).position(0); + ((Buffer)byteBuffer).limit(0).position(0); lastActiveFilter = -1; - parsingHeader = true; swallowInput = true; -@@ -295,10 +296,10 @@ public class Http11InputBuffer implement + +@@ -298,10 +299,10 @@ public class Http11InputBuffer implement if (byteBuffer.remaining() > 0) { // Copy leftover bytes to the beginning of the buffer byteBuffer.compact(); @@ -517,7 +505,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. } } -@@ -382,7 +383,7 @@ public class Http11InputBuffer implement +@@ -385,7 +386,7 @@ public class Http11InputBuffer implement } chr = byteBuffer.get(); } while ((chr == Constants.CR) || (chr == Constants.LF)); @@ -526,7 +514,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. parsingRequestLineStart = byteBuffer.position(); parsingRequestLinePhase = 2; -@@ -432,7 +433,7 @@ public class Http11InputBuffer implement +@@ -431,7 +432,7 @@ public class Http11InputBuffer implement chr = byteBuffer.get(); if (!(chr == Constants.SP || chr == Constants.HT)) { space = false; @@ -535,7 +523,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. } } parsingRequestLineStart = byteBuffer.position(); -@@ -526,7 +527,7 @@ public class Http11InputBuffer implement +@@ -525,7 +526,7 @@ public class Http11InputBuffer implement byte chr = byteBuffer.get(); if (!(chr == Constants.SP || chr == Constants.HT)) { space = false; @@ -544,7 +532,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. } } parsingRequestLineStart = byteBuffer.position(); -@@ -643,7 +644,7 @@ public class Http11InputBuffer implement +@@ -642,7 +643,7 @@ public class Http11InputBuffer implement if (swallowInput && (lastActiveFilter != -1)) { int extraBytes = (int) activeFilters[lastActiveFilter].end(); @@ -553,7 +541,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. } } -@@ -741,7 +742,7 @@ public class Http11InputBuffer implement +@@ -748,7 +749,7 @@ public class Http11InputBuffer implement wrapper.getSocketBufferHandler().getReadBuffer().capacity(); if (byteBuffer == null || byteBuffer.capacity() < bufLength) { byteBuffer = ByteBuffer.allocate(bufLength); @@ -562,7 +550,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. } } -@@ -766,14 +767,14 @@ public class Http11InputBuffer implement +@@ -781,14 +782,14 @@ public class Http11InputBuffer implement throw new IllegalArgumentException(sm.getString("iib.requestheadertoolarge.error")); } } else { @@ -581,16 +569,16 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. SocketWrapperBase socketWrapper = this.wrapper; int nRead = -1; if (socketWrapper != null) { -@@ -781,7 +782,7 @@ public class Http11InputBuffer implement +@@ -796,7 +797,7 @@ public class Http11InputBuffer implement } else { throw new CloseNowException(sm.getString("iib.eof.error")); } - byteBuffer.limit(byteBuffer.position()).reset(); + ((Buffer)byteBuffer).limit(byteBuffer.position()).reset(); - if (nRead > 0) { - return true; - } else if (nRead == -1) { -@@ -821,10 +822,10 @@ public class Http11InputBuffer implement + + if (log.isDebugEnabled()) { + log.debug("Received [" +@@ -842,10 +843,10 @@ public class Http11InputBuffer implement } else { if (prevChr == Constants.CR) { // Must have read two bytes (first was CR, second was not LF) @@ -603,7 +591,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. } break; } -@@ -867,7 +868,7 @@ public class Http11InputBuffer implement +@@ -888,7 +889,7 @@ public class Http11InputBuffer implement // Non-token characters are illegal in header names // Parsing continues so the error can be reported in context headerData.lastSignificantChar = pos; @@ -612,7 +600,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. // skipLine() will handle the error return skipLine(); } -@@ -905,7 +906,7 @@ public class Http11InputBuffer implement +@@ -926,7 +927,7 @@ public class Http11InputBuffer implement chr = byteBuffer.get(); if (!(chr == Constants.SP || chr == Constants.HT)) { headerParsePos = HeaderParsePosition.HEADER_VALUE; @@ -621,7 +609,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. break; } } -@@ -1136,7 +1137,7 @@ public class Http11InputBuffer implement +@@ -1157,7 +1158,7 @@ public class Http11InputBuffer implement int length = byteBuffer.remaining(); handler.setByteBuffer(byteBuffer.duplicate()); @@ -630,7 +618,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. return length; } -@@ -1158,12 +1159,12 @@ public class Http11InputBuffer implement +@@ -1184,12 +1185,12 @@ public class Http11InputBuffer implement @Override public void expand(int size) { if (byteBuffer.capacity() >= size) { @@ -645,10 +633,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11InputBuffer. temp = null; } } -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11OutputBuffer.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http11/Http11OutputBuffer.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11OutputBuffer.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/Http11OutputBuffer.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/Http11OutputBuffer.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http11/Http11OutputBuffer.java 2020-10-06 16:23:50.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http11/Http11OutputBuffer.java 2021-03-15 18:25:09.761415192 +0100 @@ -17,6 +17,7 @@ package org.apache.coyote.http11; @@ -657,7 +644,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11OutputBuffer import java.nio.ByteBuffer; import java.util.Arrays; -@@ -242,7 +243,7 @@ public class Http11OutputBuffer implemen +@@ -245,7 +246,7 @@ public class Http11OutputBuffer implemen * headers so the error response can be written. */ void resetHeaderBuffer() { @@ -666,16 +653,16 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11OutputBuffer } -@@ -270,7 +271,7 @@ public class Http11OutputBuffer implemen +@@ -273,7 +274,7 @@ public class Http11OutputBuffer implemen // Recycle response object response.recycle(); // Reset pointers - headerBuffer.position(0).limit(headerBuffer.capacity()); + ((Buffer)headerBuffer).position(0).limit(headerBuffer.capacity()); lastActiveFilter = -1; + ackSent = false; responseFinished = false; - byteCount = 0; -@@ -302,7 +303,7 @@ public class Http11OutputBuffer implemen +@@ -310,7 +311,7 @@ public class Http11OutputBuffer implemen if (headerBuffer.position() > 0) { // Sending the response header buffer @@ -684,7 +671,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11OutputBuffer try { SocketWrapperBase socketWrapper = this.socketWrapper; if (socketWrapper != null) { -@@ -311,7 +312,7 @@ public class Http11OutputBuffer implemen +@@ -319,7 +320,7 @@ public class Http11OutputBuffer implemen throw new CloseNowException(sm.getString("iob.failedwrite")); } } finally { @@ -693,10 +680,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http11/Http11OutputBuffer } } } -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/HpackDecoder.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http2/HpackDecoder.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/HpackDecoder.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/HpackDecoder.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/HpackDecoder.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/HpackDecoder.java 2020-10-06 16:23:51.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/HpackDecoder.java 2021-03-15 18:25:09.765415210 +0100 @@ -16,6 +16,7 @@ */ package org.apache.coyote.http2; @@ -785,10 +771,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/HpackDecoder.java int index = Hpack.decodeInteger(buffer, prefixLength); if (index == -1) { return null; -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/HPackHuffman.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http2/HPackHuffman.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/HPackHuffman.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/HPackHuffman.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/HPackHuffman.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/HPackHuffman.java 2020-10-06 16:23:50.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/HPackHuffman.java 2021-03-15 18:25:09.765415210 +0100 @@ -16,6 +16,7 @@ */ package org.apache.coyote.http2; @@ -832,10 +817,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/HPackHuffman.java return false; } buffer.put((byte) (currentBufferByte | ((0xFF) >> bytePos))); -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Hpack.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http2/Hpack.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Hpack.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Hpack.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Hpack.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Hpack.java 2020-10-06 16:23:51.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Hpack.java 2021-03-15 18:25:09.765415210 +0100 @@ -16,6 +16,7 @@ */ package org.apache.coyote.http2; @@ -853,10 +837,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Hpack.java return -1; } b = source.get(); -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2AsyncParser.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http2/Http2AsyncParser.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2AsyncParser.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Http2AsyncParser.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Http2AsyncParser.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Http2AsyncParser.java 2020-10-06 16:23:51.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Http2AsyncParser.java 2021-03-15 18:25:09.765415210 +0100 @@ -17,6 +17,7 @@ package org.apache.coyote.http2; @@ -874,7 +857,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2AsyncParser.ja try { if (streamException) { swallow(streamId, payloadSize, false, payload); -@@ -232,7 +233,7 @@ class Http2AsyncParser extends Http2Pars +@@ -233,7 +234,7 @@ class Http2AsyncParser extends Http2Pars public void completed(Long result, Void attachment) { if (streamException || error == null) { ByteBuffer payload = buffers[1]; @@ -883,7 +866,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2AsyncParser.ja try { boolean continueParsing; do { -@@ -286,7 +287,7 @@ class Http2AsyncParser extends Http2Pars +@@ -287,7 +288,7 @@ class Http2AsyncParser extends Http2Pars if (payload.remaining() - 9 >= payloadSize) { continueParsing = true; // Now go over frame header @@ -892,10 +875,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2AsyncParser.ja try { validateFrame(null, frameType, streamId, flags, payloadSize); } catch (StreamException e) { -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java 2020-10-06 16:23:51.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java 2021-03-15 18:25:09.765415210 +0100 @@ -17,6 +17,7 @@ package org.apache.coyote.http2; @@ -904,7 +886,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2AsyncUpgradeHa import java.nio.ByteBuffer; import java.nio.channels.CompletionHandler; import java.nio.channels.FileChannel; -@@ -216,11 +217,11 @@ public class Http2AsyncUpgradeHandler ex +@@ -218,11 +219,11 @@ public class Http2AsyncUpgradeHandler ex if (writeable) { ByteUtil.set31Bits(header, 5, stream.getIdAsInt()); int orgLimit = data.limit(); @@ -918,10 +900,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2AsyncUpgradeHa handleAsyncException(); } } -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2Parser.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http2/Http2Parser.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2Parser.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Http2Parser.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Http2Parser.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Http2Parser.java 2020-10-06 16:23:51.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Http2Parser.java 2021-03-15 18:25:09.765415210 +0100 @@ -17,6 +17,7 @@ package org.apache.coyote.http2; @@ -976,10 +957,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2Parser.java } return result; } -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2UpgradeHandler.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http2/Http2UpgradeHandler.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2UpgradeHandler.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Http2UpgradeHandler.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Http2UpgradeHandler.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Http2UpgradeHandler.java 2020-10-06 16:23:51.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Http2UpgradeHandler.java 2021-03-15 18:25:09.765415210 +0100 @@ -18,6 +18,7 @@ package org.apache.coyote.http2; import java.io.EOFException; @@ -988,7 +968,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2UpgradeHandler import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.HashSet; -@@ -762,9 +763,9 @@ class Http2UpgradeHandler extends Abstra +@@ -770,9 +771,9 @@ class Http2UpgradeHandler extends Abstra try { socketWrapper.write(true, header, 0, header.length); int orgLimit = data.limit(); @@ -1000,7 +980,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2UpgradeHandler socketWrapper.flush(true); } catch (IOException ioe) { handleAppInitiatedIOException(ioe); -@@ -1829,7 +1830,7 @@ class Http2UpgradeHandler extends Abstra +@@ -1920,7 +1921,7 @@ class Http2UpgradeHandler extends Abstra } catch (IOException ioe) { handleAppInitiatedIOException(ioe); } @@ -1009,10 +989,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Http2UpgradeHandler } @Override -Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Stream.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/coyote/http2/Stream.java -+++ apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Stream.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Stream.java apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Stream.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/coyote/http2/Stream.java 2020-10-06 16:23:51.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/coyote/http2/Stream.java 2021-03-15 18:25:09.765415210 +0100 @@ -17,6 +17,7 @@ package org.apache.coyote.http2; @@ -1021,7 +1000,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Stream.java import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.security.AccessController; -@@ -850,9 +851,9 @@ class Stream extends AbstractStream impl +@@ -811,9 +812,9 @@ class Stream extends AbstractNonZeroStre int chunkLimit = chunk.limit(); while (chunk.remaining() > 0) { int thisTime = Math.min(buffer.remaining(), chunk.remaining()); @@ -1033,7 +1012,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Stream.java if (chunk.remaining() > 0 && !buffer.hasRemaining()) { // Only flush if we have more data to write and the buffer // is full -@@ -922,7 +923,7 @@ class Stream extends AbstractStream impl +@@ -883,7 +884,7 @@ class Stream extends AbstractNonZeroStre // Buffer is empty. Nothing to do. return false; } @@ -1042,7 +1021,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Stream.java int left = buffer.remaining(); while (left > 0) { if (streamReservation == 0) { -@@ -953,7 +954,7 @@ class Stream extends AbstractStream impl +@@ -914,7 +915,7 @@ class Stream extends AbstractNonZeroStre left -= connectionReservation; } } @@ -1051,7 +1030,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Stream.java return false; } -@@ -1014,9 +1015,9 @@ class Stream extends AbstractStream impl +@@ -975,9 +976,9 @@ class Stream extends AbstractNonZeroStre int chunkLimit = src.limit(); while (src.remaining() > 0) { int thisTime = Math.min(buffer.remaining(), src.remaining()); @@ -1063,7 +1042,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Stream.java if (flush(false, blocking)) { return true; } -@@ -1104,14 +1105,14 @@ class Stream extends AbstractStream impl +@@ -1065,14 +1066,14 @@ class Stream extends AbstractNonZeroStre if (inBuffer.position() > 0) { // Data is available in the inBuffer. Copy it to the // outBuffer. @@ -1080,10 +1059,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/coyote/http2/Stream.java } else if (!canRead) { return -1; } else { -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/B2CConverter.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/buf/B2CConverter.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/B2CConverter.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/B2CConverter.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/B2CConverter.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/B2CConverter.java 2020-10-06 16:23:53.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/B2CConverter.java 2021-03-15 18:25:09.765415210 +0100 @@ -18,6 +18,7 @@ package org.apache.tomcat.util.buf; import java.io.IOException; @@ -1222,10 +1200,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/B2CConverter.jav bc.get(leftovers.array(), 0, bc.remaining()); } } -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/ByteBufferHolder.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/buf/ByteBufferHolder.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/ByteBufferHolder.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/ByteBufferHolder.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/ByteBufferHolder.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/ByteBufferHolder.java 2020-10-06 16:23:53.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/ByteBufferHolder.java 2021-03-15 18:25:09.765415210 +0100 @@ -16,6 +16,7 @@ */ package org.apache.tomcat.util.buf; @@ -1243,10 +1220,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/ByteBufferHolder return true; } else { return false; -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/ByteBufferUtils.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/buf/ByteBufferUtils.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/ByteBufferUtils.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/ByteBufferUtils.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/ByteBufferUtils.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/ByteBufferUtils.java 2020-10-06 16:23:53.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/ByteBufferUtils.java 2021-03-15 18:25:09.765415210 +0100 @@ -19,6 +19,7 @@ package org.apache.tomcat.util.buf; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; @@ -1264,10 +1240,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/ByteBufferUtils. out.put(in); if (direct) { -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/ByteChunk.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/buf/ByteChunk.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/ByteChunk.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/ByteChunk.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/ByteChunk.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/ByteChunk.java 2020-10-06 16:23:53.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/ByteChunk.java 2021-03-15 18:25:09.765415210 +0100 @@ -19,6 +19,7 @@ package org.apache.tomcat.util.buf; import java.io.IOException; import java.io.ObjectInputStream; @@ -1313,10 +1288,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/ByteChunk.java start += n; return n; } -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/C2BConverter.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/buf/C2BConverter.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/C2BConverter.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/C2BConverter.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/C2BConverter.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/C2BConverter.java 2020-10-06 16:23:53.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/C2BConverter.java 2021-03-15 18:25:09.765415210 +0100 @@ -17,6 +17,7 @@ package org.apache.tomcat.util.buf; @@ -1454,10 +1428,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/C2BConverter.jav cc.get(leftovers.array(), 0, cc.remaining()); } } -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/Utf8Decoder.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/buf/Utf8Decoder.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/Utf8Decoder.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/Utf8Decoder.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/Utf8Decoder.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/Utf8Decoder.java 2020-10-06 16:23:53.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/Utf8Decoder.java 2021-03-15 18:25:09.769415228 +0100 @@ -16,6 +16,7 @@ */ package org.apache.tomcat.util.buf; @@ -1623,10 +1596,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/Utf8Decoder.java return (outRemaining == 0 && inIndex < inIndexLimit) ? CoderResult.OVERFLOW : CoderResult.UNDERFLOW; -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/Utf8Encoder.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/buf/Utf8Encoder.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/Utf8Encoder.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/Utf8Encoder.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/Utf8Encoder.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/buf/Utf8Encoder.java 2020-10-06 16:23:53.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/buf/Utf8Encoder.java 2021-03-15 18:25:09.769415228 +0100 @@ -16,6 +16,7 @@ */ package org.apache.tomcat.util.buf; @@ -1738,10 +1710,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/buf/Utf8Encoder.java } return CoderResult.UNDERFLOW; } -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/AprEndpoint.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/net/AprEndpoint.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/AprEndpoint.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/AprEndpoint.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/AprEndpoint.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/AprEndpoint.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/AprEndpoint.java 2021-03-15 18:25:09.769415228 +0100 @@ -20,6 +20,7 @@ import java.io.EOFException; import java.io.IOException; import java.net.InetSocketAddress; @@ -1750,7 +1721,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/AprEndpoint.java import java.nio.ByteBuffer; import java.nio.channels.CompletionHandler; import java.nio.charset.StandardCharsets; -@@ -2040,7 +2041,7 @@ public class AprEndpoint extends Abstrac +@@ -2033,7 +2034,7 @@ public class AprEndpoint extends Abstrac // SSL and app buffer size settings with NIO & NIO2. if (endpoint.isSSLEnabled()) { sslOutputBuffer = ByteBuffer.allocateDirect(SSL_OUTPUT_BUFFER_SIZE); @@ -1759,7 +1730,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/AprEndpoint.java } else { sslOutputBuffer = null; } -@@ -2102,7 +2103,7 @@ public class AprEndpoint extends Abstrac +@@ -2095,7 +2096,7 @@ public class AprEndpoint extends Abstrac // The socket read buffer capacity is socket.appReadBufSize int limit = socketBufferHandler.getReadBuffer().capacity(); if (to.isDirect() && to.remaining() >= limit) { @@ -1768,7 +1739,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/AprEndpoint.java nRead = fillReadBuffer(block, to); if (log.isDebugEnabled()) { log.debug("Socket: [" + this + "], Read direct from socket: [" + nRead + "]"); -@@ -2181,7 +2182,7 @@ public class AprEndpoint extends Abstrac +@@ -2174,7 +2175,7 @@ public class AprEndpoint extends Abstrac } if (result > 0) { @@ -1777,7 +1748,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/AprEndpoint.java return result; } else if (result == 0 || -result == Status.EAGAIN) { return 0; -@@ -2303,9 +2304,9 @@ public class AprEndpoint extends Abstrac +@@ -2296,9 +2297,9 @@ public class AprEndpoint extends Abstrac if (getEndpoint().isSSLEnabled()) { if (sslOutputBuffer.remaining() == 0) { // Buffer was fully written last time around @@ -1789,7 +1760,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/AprEndpoint.java } else { // Buffer still has data from previous attempt to write // APR + SSL requires that exactly the same parameters are -@@ -2314,13 +2315,13 @@ public class AprEndpoint extends Abstrac +@@ -2307,13 +2308,13 @@ public class AprEndpoint extends Abstrac thisTime = Socket.sendb(getSocket().longValue(), sslOutputBuffer, sslOutputBuffer.position(), sslOutputBuffer.limit()); if (thisTime > 0) { @@ -1805,10 +1776,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/AprEndpoint.java } } if (Status.APR_STATUS_IS_EAGAIN(-thisTime)) { -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/Nio2Endpoint.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/net/Nio2Endpoint.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/Nio2Endpoint.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/Nio2Endpoint.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/Nio2Endpoint.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/Nio2Endpoint.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/Nio2Endpoint.java 2021-03-15 18:25:09.769415228 +0100 @@ -22,6 +22,7 @@ import java.io.IOException; import java.net.InetSocketAddress; import java.net.SocketAddress; @@ -1817,7 +1787,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/Nio2Endpoint.jav import java.nio.ByteBuffer; import java.nio.channels.AsynchronousChannelGroup; import java.nio.channels.AsynchronousCloseException; -@@ -541,7 +542,7 @@ public class Nio2Endpoint extends Abstra +@@ -545,7 +546,7 @@ public class Nio2Endpoint extends Abstra if (nRead > 0) { getSocket().getBufHandler().configureWriteBufferForRead(); if (attachment.length < buffer.remaining()) { @@ -1826,7 +1796,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/Nio2Endpoint.jav } attachment.length -= nRead; } else { -@@ -886,7 +887,7 @@ public class Nio2Endpoint extends Abstra +@@ -890,7 +891,7 @@ public class Nio2Endpoint extends Abstra // The socket read buffer capacity is socket.appReadBufSize int limit = socketBufferHandler.getReadBuffer().capacity(); if (block && to.remaining() >= limit) { @@ -1835,10 +1805,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/Nio2Endpoint.jav nRead = fillReadBuffer(block, to); if (log.isDebugEnabled()) { log.debug("Socket: [" + this + "], Read direct from socket: [" + nRead + "]"); -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/NioEndpoint.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/net/NioEndpoint.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/NioEndpoint.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/NioEndpoint.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/NioEndpoint.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/NioEndpoint.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/NioEndpoint.java 2021-03-15 18:25:09.769415228 +0100 @@ -23,6 +23,7 @@ import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; @@ -1856,10 +1825,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/NioEndpoint.java nRead = fillReadBuffer(block, to); if (log.isDebugEnabled()) { log.debug("Socket: [" + this + "], Read direct from socket: [" + nRead + "]"); -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java 2021-03-15 18:25:09.769415228 +0100 @@ -16,6 +16,7 @@ */ package org.apache.tomcat.util.net.openssl; @@ -2007,10 +1975,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/openssl/OpenSSLE } private SSLEngineResult.Status getEngineStatus() { -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SecureNio2Channel.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/net/SecureNio2Channel.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SecureNio2Channel.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/SecureNio2Channel.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/SecureNio2Channel.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/SecureNio2Channel.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/SecureNio2Channel.java 2021-03-15 18:25:09.769415228 +0100 @@ -18,6 +18,7 @@ package org.apache.tomcat.util.net; import java.io.EOFException; @@ -2185,10 +2152,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SecureNio2Channe if (result.getStatus() == Status.OK) { if (result.getHandshakeStatus() == HandshakeStatus.NEED_TASK) { tasks(); -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SecureNioChannel.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/net/SecureNioChannel.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SecureNioChannel.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/SecureNioChannel.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/SecureNioChannel.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/SecureNioChannel.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/SecureNioChannel.java 2021-03-15 18:25:09.769415228 +0100 @@ -19,6 +19,7 @@ package org.apache.tomcat.util.net; import java.io.EOFException; import java.io.IOException; @@ -2328,10 +2294,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SecureNioChannel if (result.getStatus() == Status.OK) { if (result.getHandshakeStatus() == HandshakeStatus.NEED_TASK) tasks(); -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SocketBufferHandler.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/net/SocketBufferHandler.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SocketBufferHandler.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/SocketBufferHandler.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/SocketBufferHandler.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/SocketBufferHandler.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/SocketBufferHandler.java 2021-03-15 18:25:09.769415228 +0100 @@ -17,6 +17,7 @@ package org.apache.tomcat.util.net; @@ -2340,7 +2305,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SocketBufferHand import java.nio.ByteBuffer; import org.apache.tomcat.util.buf.ByteBufferUtils; -@@ -67,13 +68,13 @@ public class SocketBufferHandler { +@@ -78,13 +79,13 @@ public class SocketBufferHandler { // Switching to write int remaining = readBuffer.remaining(); if (remaining == 0) { @@ -2356,7 +2321,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SocketBufferHand } this.readBufferConfiguredForWrite = readBufferConFiguredForWrite; } -@@ -160,15 +161,15 @@ public class SocketBufferHandler { +@@ -171,15 +172,15 @@ public class SocketBufferHandler { // Switching to write int remaining = writeBuffer.remaining(); if (remaining == 0) { @@ -2376,7 +2341,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SocketBufferHand } this.writeBufferConfiguredForWrite = writeBufferConfiguredForWrite; } -@@ -199,9 +200,9 @@ public class SocketBufferHandler { +@@ -210,9 +211,9 @@ public class SocketBufferHandler { public void reset() { @@ -2388,10 +2353,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SocketBufferHand writeBufferConfiguredForWrite = true; } -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SocketWrapperBase.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/net/SocketWrapperBase.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SocketWrapperBase.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/SocketWrapperBase.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/SocketWrapperBase.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/SocketWrapperBase.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/SocketWrapperBase.java 2021-03-15 18:25:09.769415228 +0100 @@ -19,6 +19,7 @@ package org.apache.tomcat.util.net; import java.io.EOFException; import java.io.IOException; @@ -2400,7 +2364,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SocketWrapperBas import java.nio.ByteBuffer; import java.nio.channels.CompletionHandler; import java.nio.channels.InterruptedByTimeoutException; -@@ -1467,9 +1468,9 @@ public abstract class SocketWrapperBase< +@@ -1491,9 +1492,9 @@ public abstract class SocketWrapperBase< int max = Math.min(from.remaining(), to.remaining()); if (max > 0) { int fromLimit = from.limit(); @@ -2412,10 +2376,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/SocketWrapperBas } return max; } -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/TLSClientHelloExtractor.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/net/TLSClientHelloExtractor.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/TLSClientHelloExtractor.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/TLSClientHelloExtractor.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/TLSClientHelloExtractor.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/TLSClientHelloExtractor.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/TLSClientHelloExtractor.java 2021-03-15 18:25:09.769415228 +0100 @@ -17,6 +17,7 @@ package org.apache.tomcat.util.net; @@ -2471,10 +2434,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/TLSClientHelloEx } -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/WriteBuffer.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/util/net/WriteBuffer.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/WriteBuffer.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/WriteBuffer.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/WriteBuffer.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/util/net/WriteBuffer.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/util/net/WriteBuffer.java 2021-03-15 18:25:09.769415228 +0100 @@ -17,6 +17,7 @@ package org.apache.tomcat.util.net; @@ -2483,19 +2445,18 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/util/net/WriteBuffer.java import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Iterator; -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java -@@ -18,6 +18,7 @@ package org.apache.tomcat.websocket; - +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java 2021-03-15 18:26:01.029640508 +0100 +@@ -19,6 +19,7 @@ package org.apache.tomcat.websocket; import java.io.EOFException; import java.io.IOException; + import java.net.SocketAddress; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousSocketChannel; import java.nio.channels.CompletionHandler; -@@ -189,7 +190,7 @@ public class AsyncChannelWrapperSecure i +@@ -196,7 +197,7 @@ public class AsyncChannelWrapperSecure i for (int i = offset; i < offset + length; i++) { ByteBuffer src = srcs[i]; while (src.hasRemaining()) { @@ -2504,7 +2465,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/AsyncChannelWra // Encrypt the data SSLEngineResult r = sslEngine.wrap(src, socketWriteBuffer); -@@ -215,7 +216,7 @@ public class AsyncChannelWrapperSecure i +@@ -222,7 +223,7 @@ public class AsyncChannelWrapperSecure i } } @@ -2513,7 +2474,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/AsyncChannelWra // Do the write int toWrite = r.bytesProduced(); -@@ -272,7 +273,7 @@ public class AsyncChannelWrapperSecure i +@@ -279,7 +280,7 @@ public class AsyncChannelWrapperSecure i } } @@ -2522,7 +2483,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/AsyncChannelWra if (socketReadBuffer.hasRemaining()) { // Decrypt the data in the buffer -@@ -358,7 +359,7 @@ public class AsyncChannelWrapperSecure i +@@ -365,7 +366,7 @@ public class AsyncChannelWrapperSecure i try { sslEngine.beginHandshake(); // So the first compact does the right thing @@ -2531,7 +2492,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/AsyncChannelWra handshakeStatus = sslEngine.getHandshakeStatus(); resultStatus = Status.OK; -@@ -368,11 +369,11 @@ public class AsyncChannelWrapperSecure i +@@ -375,11 +376,11 @@ public class AsyncChannelWrapperSecure i while(handshaking) { switch (handshakeStatus) { case NEED_WRAP: { @@ -2545,7 +2506,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/AsyncChannelWra Future fWrite = socketChannel.write(socketWriteBuffer); fWrite.get(); -@@ -386,7 +387,7 @@ public class AsyncChannelWrapperSecure i +@@ -393,7 +394,7 @@ public class AsyncChannelWrapperSecure i socketChannel.read(socketReadBuffer); fRead.get(); } @@ -2554,10 +2515,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/AsyncChannelWra SSLEngineResult r = sslEngine.unwrap(socketReadBuffer, DUMMY); checkResult(r, false); -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/PerMessageDeflate.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/websocket/PerMessageDeflate.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/PerMessageDeflate.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/PerMessageDeflate.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/PerMessageDeflate.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/PerMessageDeflate.java 2020-10-06 16:23:55.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/PerMessageDeflate.java 2021-03-15 18:25:09.773415244 +0100 @@ -17,6 +17,7 @@ package org.apache.tomcat.websocket; @@ -2616,10 +2576,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/PerMessageDefla compressedPart = new MessagePart(true, getRsv(uncompressedPart), opCode, compressedPayload, uncompressedIntermediateHandler, uncompressedIntermediateHandler, -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/server/WsFrameServer.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/websocket/server/WsFrameServer.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/server/WsFrameServer.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/server/WsFrameServer.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/server/WsFrameServer.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/server/WsFrameServer.java 2020-10-06 16:23:56.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/server/WsFrameServer.java 2021-03-15 18:25:09.773415244 +0100 @@ -19,6 +19,7 @@ package org.apache.tomcat.websocket.serv import java.io.EOFException; import java.io.IOException; @@ -2642,10 +2601,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/server/WsFrameS if (read < 0) { throw new EOFException(); } else if (read == 0) { -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/websocket/WsFrameBase.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/WsFrameBase.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/WsFrameBase.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/WsFrameBase.java 2020-10-06 16:23:56.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/WsFrameBase.java 2021-03-15 18:25:09.773415244 +0100 @@ -17,6 +17,7 @@ package org.apache.tomcat.websocket; @@ -2663,7 +2621,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav messageBufferBinary = ByteBuffer.allocate(wsSession.getMaxBinaryMessageBufferSize()); messageBufferText = CharBuffer.allocate(wsSession.getMaxTextMessageBufferSize()); wsSession.setWsFrame(this); -@@ -257,11 +258,11 @@ public abstract class WsFrameBase { +@@ -257,7 +258,7 @@ public abstract class WsFrameBase { if (payloadLength == 126) { payloadLength = byteArrayToLong(inputBuffer.array(), inputBuffer.arrayOffset() + inputBuffer.position(), 2); @@ -2672,12 +2630,16 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav } else if (payloadLength == 127) { payloadLength = byteArrayToLong(inputBuffer.array(), inputBuffer.arrayOffset() + inputBuffer.position(), 8); +@@ -268,7 +269,7 @@ public abstract class WsFrameBase { + throw new WsIOException( + new CloseReason(CloseCodes.PROTOCOL_ERROR, sm.getString("wsFrame.payloadMsbInvalid"))); + } - inputBuffer.position(inputBuffer.position() + 8); + ((Buffer)inputBuffer).position(inputBuffer.position() + 8); } if (Util.isControl(opCode)) { if (payloadLength > 125) { -@@ -313,13 +314,13 @@ public abstract class WsFrameBase { +@@ -320,13 +321,13 @@ public abstract class WsFrameBase { // Control messages have fixed message size so // TransformationResult.OVERFLOW is not possible here @@ -2693,7 +2655,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav // Payload must be zero or 2+ bytes long throw new WsIOException(new CloseReason( CloseCodes.PROTOCOL_ERROR, -@@ -331,8 +332,8 @@ public abstract class WsFrameBase { +@@ -338,8 +339,8 @@ public abstract class WsFrameBase { CoderResult cr = utf8DecoderControl.decode(controlBufferBinary, controlBufferText, true); if (cr.isError()) { @@ -2704,7 +2666,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav throw new WsIOException(new CloseReason( CloseCodes.PROTOCOL_ERROR, sm.getString("wsFrame.invalidUtf8Close"))); -@@ -340,7 +341,7 @@ public abstract class WsFrameBase { +@@ -347,7 +348,7 @@ public abstract class WsFrameBase { // There will be no overflow as the output buffer is big // enough. There will be no underflow as all the data is // passed to the decoder in a single call. @@ -2713,7 +2675,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav reason = controlBufferText.toString(); } } -@@ -357,17 +358,17 @@ public abstract class WsFrameBase { +@@ -364,17 +365,17 @@ public abstract class WsFrameBase { } catch (Throwable t) { handleThrowableOnSend(t); } finally { @@ -2734,7 +2696,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav newFrame(); return true; } -@@ -397,7 +398,7 @@ public abstract class WsFrameBase { +@@ -404,7 +405,7 @@ public abstract class WsFrameBase { } catch (Throwable t) { handleThrowableOnSend(t); } finally { @@ -2743,7 +2705,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav } } -@@ -408,7 +409,7 @@ public abstract class WsFrameBase { +@@ -415,7 +416,7 @@ public abstract class WsFrameBase { while (!TransformationResult.END_OF_FRAME.equals(tr)) { // Frame not complete - we ran out of something // Convert bytes to UTF-8 @@ -2752,7 +2714,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav while (true) { CoderResult cr = utf8DecoderMessage.decode(messageBufferBinary, messageBufferText, false); -@@ -419,9 +420,9 @@ public abstract class WsFrameBase { +@@ -426,9 +427,9 @@ public abstract class WsFrameBase { } else if (cr.isOverflow()) { // Ran out of space in text buffer - flush it if (usePartial()) { @@ -2764,7 +2726,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav } else { throw new WsIOException(new CloseReason( CloseCodes.TOO_BIG, -@@ -448,7 +449,7 @@ public abstract class WsFrameBase { +@@ -455,7 +456,7 @@ public abstract class WsFrameBase { tr = transformation.getMoreData(opCode, fin, rsv, messageBufferBinary); } @@ -2773,7 +2735,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav boolean last = false; // Frame is fully received // Convert bytes to UTF-8 -@@ -462,9 +463,9 @@ public abstract class WsFrameBase { +@@ -469,9 +470,9 @@ public abstract class WsFrameBase { } else if (cr.isOverflow()) { // Ran out of space in text buffer - flush it if (usePartial()) { @@ -2785,7 +2747,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav } else { throw new WsIOException(new CloseReason( CloseCodes.TOO_BIG, -@@ -477,9 +478,9 @@ public abstract class WsFrameBase { +@@ -484,9 +485,9 @@ public abstract class WsFrameBase { // If partial messages are supported, send what we have // managed to decode if (usePartial()) { @@ -2797,7 +2759,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav } messageBufferBinary.compact(); newFrame(); -@@ -491,7 +492,7 @@ public abstract class WsFrameBase { +@@ -498,7 +499,7 @@ public abstract class WsFrameBase { } } else { // End of message @@ -2806,7 +2768,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav sendMessageText(true); newMessage(); -@@ -519,12 +520,12 @@ public abstract class WsFrameBase { +@@ -526,12 +527,12 @@ public abstract class WsFrameBase { Long.valueOf(payloadLength))); throw new WsIOException(cr); } @@ -2822,7 +2784,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav // Read more data tr = transformation.getMoreData(opCode, fin, rsv, messageBufferBinary); } -@@ -534,12 +535,12 @@ public abstract class WsFrameBase { +@@ -541,12 +542,12 @@ public abstract class WsFrameBase { // - partial messages are supported // - the message is complete if (usePartial() || !continuationExpected) { @@ -2838,7 +2800,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav } if (continuationExpected) { -@@ -588,8 +589,8 @@ public abstract class WsFrameBase { +@@ -595,8 +596,8 @@ public abstract class WsFrameBase { private void newMessage() { @@ -2849,7 +2811,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav utf8DecoderMessage.reset(); continuationExpected = false; newFrame(); -@@ -598,7 +599,7 @@ public abstract class WsFrameBase { +@@ -605,7 +606,7 @@ public abstract class WsFrameBase { private void newFrame() { if (inputBuffer.remaining() == 0) { @@ -2858,7 +2820,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav } maskIndex = 0; -@@ -631,7 +632,7 @@ public abstract class WsFrameBase { +@@ -638,7 +639,7 @@ public abstract class WsFrameBase { private void makeRoom() { inputBuffer.compact(); @@ -2867,7 +2829,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav } -@@ -649,7 +650,7 @@ public abstract class WsFrameBase { +@@ -656,7 +657,7 @@ public abstract class WsFrameBase { private boolean swallowInput() { long toSkip = Math.min(payloadLength - payloadWritten, inputBuffer.remaining()); @@ -2876,7 +2838,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav payloadWritten += toSkip; if (payloadWritten == payloadLength) { if (continuationExpected) { -@@ -945,9 +946,9 @@ public abstract class WsFrameBase { +@@ -952,9 +953,9 @@ public abstract class WsFrameBase { toWrite = Math.min(toWrite, dest.remaining()); int orgLimit = inputBuffer.limit(); @@ -2888,10 +2850,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameBase.jav payloadWritten += toWrite; if (payloadWritten == payloadLength) { -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameClient.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/websocket/WsFrameClient.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameClient.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/WsFrameClient.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/WsFrameClient.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/WsFrameClient.java 2020-10-06 16:23:56.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/WsFrameClient.java 2021-03-15 18:25:09.773415244 +0100 @@ -18,6 +18,7 @@ package org.apache.tomcat.websocket; import java.io.EOFException; @@ -2941,7 +2902,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameClient.j doResumeProcessing(true); } -@@ -169,7 +170,7 @@ public class WsFrameClient extends WsFra +@@ -172,7 +173,7 @@ public class WsFrameClient extends WsFra // response will be empty if this exception is thrown response = ByteBuffer .allocate(((ReadBufferOverflowException) exc).getMinBufferSize()); @@ -2950,10 +2911,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsFrameClient.j doResumeProcessing(false); } else { close(exc); -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java 2020-10-06 16:23:56.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java 2021-03-15 18:25:09.773415244 +0100 @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.OutputStream; import java.io.Writer; @@ -2962,7 +2922,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.CharsetEncoder; -@@ -240,13 +241,13 @@ public abstract class WsRemoteEndpointIm +@@ -241,13 +242,13 @@ public abstract class WsRemoteEndpointIm long timeoutExpiry = getTimeoutExpiry(); boolean isDone = false; while (!isDone) { @@ -2978,7 +2938,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin sendMessageBlock(Constants.OPCODE_TEXT, encoderBuffer, last && isDone, timeoutExpiry); } stateMachine.complete(last); -@@ -321,7 +322,7 @@ public abstract class WsRemoteEndpointIm +@@ -330,7 +331,7 @@ public abstract class WsRemoteEndpointIm } if (payload != null) { @@ -2987,7 +2947,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin } endMessage(null, null); -@@ -433,7 +434,7 @@ public abstract class WsRemoteEndpointIm +@@ -442,7 +443,7 @@ public abstract class WsRemoteEndpointIm if (Constants.INTERNAL_OPCODE_FLUSH == mp.getOpCode()) { nextFragmented = fragmented; nextText = text; @@ -2996,7 +2956,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin SendHandler flushHandler = new OutputBufferFlushSendHandler( outputBuffer, mp.getEndHandler()); doWrite(flushHandler, mp.getBlockingWriteTimeoutExpiry(), outputBuffer); -@@ -482,10 +483,10 @@ public abstract class WsRemoteEndpointIm +@@ -491,10 +492,10 @@ public abstract class WsRemoteEndpointIm mask = null; } @@ -3009,7 +2969,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin if (getBatchingAllowed() || isMasked()) { // Need to write via output buffer -@@ -798,13 +799,13 @@ public abstract class WsRemoteEndpointIm +@@ -807,13 +808,13 @@ public abstract class WsRemoteEndpointIm } public void write() { @@ -3025,7 +2985,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin endpoint.startMessage(Constants.OPCODE_TEXT, buffer, isDone && isLast, this); } -@@ -865,7 +866,7 @@ public abstract class WsRemoteEndpointIm +@@ -874,7 +875,7 @@ public abstract class WsRemoteEndpointIm } if (headerBuffer.hasRemaining()) { // Still more headers to write, need to flush @@ -3034,7 +2994,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin endpoint.doWrite(this, blockingWriteTimeoutExpiry, outputBuffer); return; } -@@ -879,7 +880,7 @@ public abstract class WsRemoteEndpointIm +@@ -888,7 +889,7 @@ public abstract class WsRemoteEndpointIm if (payloadLeft > outputSpace) { toWrite = outputSpace; // Temporarily reduce the limit @@ -3043,7 +3003,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin } if (mask == null) { -@@ -897,15 +898,15 @@ public abstract class WsRemoteEndpointIm +@@ -906,15 +907,15 @@ public abstract class WsRemoteEndpointIm if (payloadLeft > outputSpace) { // Restore the original limit @@ -3062,7 +3022,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin if (outputBuffer.remaining() == 0) { handler.onResult(SENDRESULT_OK); } else { -@@ -923,7 +924,7 @@ public abstract class WsRemoteEndpointIm +@@ -932,7 +933,7 @@ public abstract class WsRemoteEndpointIm if (outputBuffer.hasRemaining()) { endpoint.doWrite(this, blockingWriteTimeoutExpiry, outputBuffer); } else { @@ -3071,7 +3031,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin write(); } } else { -@@ -949,7 +950,7 @@ public abstract class WsRemoteEndpointIm +@@ -958,7 +959,7 @@ public abstract class WsRemoteEndpointIm @Override public void onResult(SendResult result) { if (result.isOK()) { @@ -3080,7 +3040,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin } handler.onResult(result); } -@@ -1042,11 +1043,11 @@ public abstract class WsRemoteEndpointIm +@@ -1051,11 +1052,11 @@ public abstract class WsRemoteEndpointIm private void doWrite(boolean last) throws IOException { if (used) { @@ -3094,7 +3054,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin } } -@@ -1121,9 +1122,9 @@ public abstract class WsRemoteEndpointIm +@@ -1130,9 +1131,9 @@ public abstract class WsRemoteEndpointIm private void doWrite(boolean last) throws IOException { if (used) { @@ -3106,10 +3066,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsRemoteEndpoin } else { endpoint.stateMachine.complete(last); } -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsSession.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/websocket/WsSession.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsSession.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/WsSession.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/WsSession.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/WsSession.java 2020-10-06 16:23:56.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/WsSession.java 2021-03-15 18:25:09.773415244 +0100 @@ -18,6 +18,7 @@ package org.apache.tomcat.websocket; import java.io.IOException; @@ -3118,7 +3077,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsSession.java import java.nio.ByteBuffer; import java.nio.channels.WritePendingException; import java.nio.charset.StandardCharsets; -@@ -607,7 +608,7 @@ public class WsSession implements Sessio +@@ -608,7 +609,7 @@ public class WsSession implements Sessio if (reason != null && reason.length() > 0) { appendCloseReasonWithTruncation(msg, reason); } @@ -3127,10 +3086,9 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsSession.java try { wsRemoteEndpoint.sendMessageBlock(Constants.OPCODE_CLOSE, msg, true); } catch (IOException | WritePendingException e) { -Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsWebSocketContainer.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/java/org/apache/tomcat/websocket/WsWebSocketContainer.java -+++ apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsWebSocketContainer.java +diff -Napur apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/WsWebSocketContainer.java apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/WsWebSocketContainer.java +--- apache-tomcat-9.0.39-src.orig/java/org/apache/tomcat/websocket/WsWebSocketContainer.java 2020-10-06 16:23:56.000000000 +0200 ++++ apache-tomcat-9.0.39-src/java/org/apache/tomcat/websocket/WsWebSocketContainer.java 2021-03-15 18:25:09.773415244 +0100 @@ -27,6 +27,7 @@ import java.net.ProxySelector; import java.net.SocketAddress; import java.net.URI; @@ -3139,7 +3097,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsWebSocketCont import java.nio.ByteBuffer; import java.nio.channels.AsynchronousChannelGroup; import java.nio.channels.AsynchronousSocketChannel; -@@ -740,7 +741,7 @@ public class WsWebSocketContainer implem +@@ -754,7 +755,7 @@ public class WsWebSocketContainer implem // Terminating CRLF result.put(CRLF); @@ -3148,7 +3106,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsWebSocketCont return result; } -@@ -769,7 +770,7 @@ public class WsWebSocketContainer implem +@@ -783,7 +784,7 @@ public class WsWebSocketContainer implem newSize = input.capacity() * 2; } ByteBuffer expanded = ByteBuffer.allocate(newSize); @@ -3157,7 +3115,7 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsWebSocketCont expanded.put(input); input = expanded; } -@@ -798,14 +799,14 @@ public class WsWebSocketContainer implem +@@ -812,7 +813,7 @@ public class WsWebSocketContainer implem while (!readHeaders) { // On entering loop buffer will be empty and at the start of a new // loop the buffer will have been fully read. @@ -3165,19 +3123,19 @@ Index: apache-tomcat-9.0.35-src/java/org/apache/tomcat/websocket/WsWebSocketCont + ((Buffer)response).clear(); // Blocking read Future read = channel.read(response); - Integer bytesRead = read.get(timeout, TimeUnit.MILLISECONDS); + Integer bytesRead; +@@ -827,7 +828,7 @@ public class WsWebSocketContainer implem if (bytesRead.intValue() == -1) { - throw new EOFException(); + throw new EOFException(sm.getString("wsWebSocketContainer.responseFail", Integer.toString(status), headers)); } - response.flip(); + ((Buffer)response).flip(); while (response.hasRemaining() && !readHeaders) { if (line == null) { line = readLine(response); -Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java -+++ apache-tomcat-9.0.35-src/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java +diff -Napur apache-tomcat-9.0.39-src.orig/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java apache-tomcat-9.0.39-src/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java +--- apache-tomcat-9.0.39-src.orig/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java 2020-10-06 16:23:59.000000000 +0200 ++++ apache-tomcat-9.0.39-src/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java 2021-03-15 18:25:09.773415244 +0100 @@ -25,6 +25,7 @@ import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.Writer; @@ -3195,10 +3153,9 @@ Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http11/upgrade/TestUpgrad CompletionState state = wrapper.write(BlockingMode.BLOCK, 10, TimeUnit.SECONDS, null, SocketWrapperBase.COMPLETE_WRITE, new CompletionHandler() { @Override public void completed(Long result, Void attachment) { -Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/Http2TestBase.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/test/org/apache/coyote/http2/Http2TestBase.java -+++ apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/Http2TestBase.java +diff -Napur apache-tomcat-9.0.39-src.orig/test/org/apache/coyote/http2/Http2TestBase.java apache-tomcat-9.0.39-src/test/org/apache/coyote/http2/Http2TestBase.java +--- apache-tomcat-9.0.39-src.orig/test/org/apache/coyote/http2/Http2TestBase.java 2020-10-06 16:23:59.000000000 +0200 ++++ apache-tomcat-9.0.39-src/test/org/apache/coyote/http2/Http2TestBase.java 2021-03-15 18:25:09.773415244 +0100 @@ -23,6 +23,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; @@ -3274,7 +3231,7 @@ Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/Http2TestBase.java ByteUtil.setThreeBytes(trailersFrameHeader, 0, trailersPayload.limit()); trailersFrameHeader[3] = FrameType.HEADERS.getIdByte(); -@@ -1018,7 +1019,7 @@ public abstract class Http2TestBase exte +@@ -1032,7 +1033,7 @@ public abstract class Http2TestBase exte if (bodyBuffer != null) { if (bodyBuffer.limit() > 0) { trace.append(lastStreamId + "-Body-"); @@ -3283,10 +3240,9 @@ Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/Http2TestBase.java while (bodyBuffer.hasRemaining()) { trace.append((char) bodyBuffer.get()); } -Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHpack.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/test/org/apache/coyote/http2/TestHpack.java -+++ apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHpack.java +diff -Napur apache-tomcat-9.0.39-src.orig/test/org/apache/coyote/http2/TestHpack.java apache-tomcat-9.0.39-src/test/org/apache/coyote/http2/TestHpack.java +--- apache-tomcat-9.0.39-src.orig/test/org/apache/coyote/http2/TestHpack.java 2020-10-06 16:23:59.000000000 +0200 ++++ apache-tomcat-9.0.39-src/test/org/apache/coyote/http2/TestHpack.java 2021-03-15 18:25:09.773415244 +0100 @@ -16,6 +16,7 @@ */ package org.apache.coyote.http2; @@ -3349,10 +3305,9 @@ Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHpack.java MimeHeaders headers2 = new MimeHeaders(); HpackDecoder decoder = new HpackDecoder(); decoder.setHeaderEmitter(new HeadersListener(headers2)); -Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHttp2Limits.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/test/org/apache/coyote/http2/TestHttp2Limits.java -+++ apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHttp2Limits.java +diff -Napur apache-tomcat-9.0.39-src.orig/test/org/apache/coyote/http2/TestHttp2Limits.java apache-tomcat-9.0.39-src/test/org/apache/coyote/http2/TestHttp2Limits.java +--- apache-tomcat-9.0.39-src.orig/test/org/apache/coyote/http2/TestHttp2Limits.java 2020-10-06 16:23:59.000000000 +0200 ++++ apache-tomcat-9.0.39-src/test/org/apache/coyote/http2/TestHttp2Limits.java 2021-03-15 18:25:09.773415244 +0100 @@ -17,6 +17,7 @@ package org.apache.coyote.http2; @@ -3361,7 +3316,7 @@ Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHttp2Limits.jav import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; -@@ -291,7 +292,7 @@ public class TestHttp2Limits extends Htt +@@ -324,7 +325,7 @@ public class TestHttp2Limits extends Htt if (state != State.COMPLETE) { throw new Exception("Unable to build headers"); } @@ -3370,10 +3325,9 @@ Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHttp2Limits.jav log.debug("Headers payload generated of size [" + headersPayload.limit() + "]"); } -Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHttp2Section_8_1.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/test/org/apache/coyote/http2/TestHttp2Section_8_1.java -+++ apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHttp2Section_8_1.java +diff -Napur apache-tomcat-9.0.39-src.orig/test/org/apache/coyote/http2/TestHttp2Section_8_1.java apache-tomcat-9.0.39-src/test/org/apache/coyote/http2/TestHttp2Section_8_1.java +--- apache-tomcat-9.0.39-src.orig/test/org/apache/coyote/http2/TestHttp2Section_8_1.java 2020-10-06 16:23:59.000000000 +0200 ++++ apache-tomcat-9.0.39-src/test/org/apache/coyote/http2/TestHttp2Section_8_1.java 2021-03-15 18:25:09.773415244 +0100 @@ -16,6 +16,7 @@ */ package org.apache.coyote.http2; @@ -3382,7 +3336,7 @@ Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHttp2Section_8_ import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; -@@ -186,7 +187,7 @@ public class TestHttp2Section_8_1 extend +@@ -225,7 +226,7 @@ public class TestHttp2Section_8_1 extend headers.clear(); headers.add(new Header(":authority", "localhost:" + getPort())); @@ -3391,10 +3345,9 @@ Index: apache-tomcat-9.0.35-src/test/org/apache/coyote/http2/TestHttp2Section_8_ buildSimpleGetRequestPart2(headersFrameHeader, headersPayload, headers , 3); -Index: apache-tomcat-9.0.35-src/test/org/apache/tomcat/util/buf/TestUtf8.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/test/org/apache/tomcat/util/buf/TestUtf8.java -+++ apache-tomcat-9.0.35-src/test/org/apache/tomcat/util/buf/TestUtf8.java +diff -Napur apache-tomcat-9.0.39-src.orig/test/org/apache/tomcat/util/buf/TestUtf8.java apache-tomcat-9.0.39-src/test/org/apache/tomcat/util/buf/TestUtf8.java +--- apache-tomcat-9.0.39-src.orig/test/org/apache/tomcat/util/buf/TestUtf8.java 2020-10-06 16:23:59.000000000 +0200 ++++ apache-tomcat-9.0.39-src/test/org/apache/tomcat/util/buf/TestUtf8.java 2021-03-15 18:25:09.773415244 +0100 @@ -16,6 +16,7 @@ */ package org.apache.tomcat.util.buf; @@ -3442,10 +3395,9 @@ Index: apache-tomcat-9.0.35-src/test/org/apache/tomcat/util/buf/TestUtf8.java String expected = testCase.outputReplaced; if ((flags & REPLACE_SWALLOWS_TRAILER) != 0) { -Index: apache-tomcat-9.0.35-src/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java -=================================================================== ---- apache-tomcat-9.0.35-src.orig/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java -+++ apache-tomcat-9.0.35-src/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java +diff -Napur apache-tomcat-9.0.39-src.orig/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java apache-tomcat-9.0.39-src/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java +--- apache-tomcat-9.0.39-src.orig/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java 2020-10-06 16:24:00.000000000 +0200 ++++ apache-tomcat-9.0.39-src/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java 2021-03-15 18:25:09.773415244 +0100 @@ -18,6 +18,7 @@ package org.apache.tomcat.websocket.pojo import java.io.IOException; @@ -3454,7 +3406,7 @@ Index: apache-tomcat-9.0.35-src/test/org/apache/tomcat/websocket/pojo/TestEncodi import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; -@@ -605,7 +606,7 @@ public class TestEncodingDecoding extend +@@ -606,7 +607,7 @@ public class TestEncodingDecoding extend reply.put((byte) 0x12); reply.put((byte) 0x34); reply.put(data); diff --git a/tomcat.changes b/tomcat.changes index 351c3c9..3dbeffd 100644 --- a/tomcat.changes +++ b/tomcat.changes @@ -15,6 +15,32 @@ Wed Mar 17 16:16:52 UTC 2021 - Abid Mehmood - Added patch: * tomcat-9.0-CVE-2021-24122.patch +------------------------------------------------------------------- +Mon Mar 15 21:42:07 UTC 2021 - Marcel Witte + +- Update to Tomcat 9.0.39. See changelog at + https://tomcat.apache.org/tomcat-9.0-doc/changelog.html#Tomcat_9.0.39_(markt) +- Rebased patches: + * tomcat-9.0.39-java8compat.patch + +------------------------------------------------------------------- +Mon Mar 15 14:57:39 UTC 2021 - Marcel Witte + +- Update to Tomcat 9.0.38. See changelog at + https://tomcat.apache.org/tomcat-9.0-doc/changelog.html#Tomcat_9.0.38_(markt) +- Rebased patches: + * tomcat-9.0.38-java8compat.patch +- Removed tomcat-9.0-CVE-2020-13943.patch because that fix is upstream now + +------------------------------------------------------------------- +Mon Feb 22 08:56:03 UTC 2021 - Marcel Witte + +- Update to Tomcat 9.0.37. See changelog at + https://tomcat.apache.org/tomcat-9.0-doc/changelog.html#Tomcat_9.0.37_(markt) +- Rebased patches: + * tomcat-9.0-osgi-build.patch + * tomcat-9.0.37-java8compat.patch + ------------------------------------------------------------------- Wed Dec 16 12:17:22 UTC 2020 - Abid Mehmood diff --git a/tomcat.spec b/tomcat.spec index df37405..320ae18 100644 --- a/tomcat.spec +++ b/tomcat.spec @@ -1,7 +1,7 @@ # # spec file for package tomcat # -# Copyright (c) 2021 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LLC # Copyright (c) 2000-2009, JPackage Project # # All modifications and additions to the file contributed by third parties @@ -22,7 +22,7 @@ %define elspec 3.0 %define major_version 9 %define minor_version 0 -%define micro_version 36 +%define micro_version 39 %define packdname apache-tomcat-%{version}-src %define serverxmltool_version 1.0 # FHS 2.3 compliant tree structure - http://www.pathname.com/fhs/2.3/ @@ -80,10 +80,9 @@ Patch3: %{name}-%{major_version}.%{minor_version}-javadoc.patch # PATCH-FIX-OPENSUSE: include all necessary aqute-bnd jars Patch4: tomcat-9.0-osgi-build.patch # PATCH-FIX-OPENSUSE: cast ByteBuffer to Buffer in cases where there is a risk of using Java 9+ apis -Patch5: tomcat-9.0.31-java8compat.patch +Patch5: tomcat-9.0.39-java8compat.patch # PATCH-FIX-OPENSUSE: set ajp connector secreteRequired to false by default to avoid tomcat not starting Patch6: tomcat-9.0.31-secretRequired-default.patch -Patch7: tomcat-9.0-CVE-2020-13943.patch Patch8: tomcat-9.0-CVE-2020-17527.patch Patch9: tomcat-9.0-CVE-2021-24122.patch Patch10: tomcat-9.0-CVE-2021-25122.patch @@ -95,8 +94,8 @@ BuildRequires: apache-commons-collections BuildRequires: apache-commons-daemon BuildRequires: apache-commons-dbcp >= 2.0 BuildRequires: apache-commons-pool2 -BuildRequires: aqute-bnd -BuildRequires: aqute-bndlib +BuildRequires: aqute-bnd >= 5.1.1 +BuildRequires: aqute-bndlib >= 5.1.1 BuildRequires: ecj >= 4.4.0 BuildRequires: fdupes BuildRequires: findutils @@ -262,7 +261,6 @@ find . -type f \( -name "*.bat" -o -name "*.class" -o -name Thumbs.db -o -name " %patch4 -p1 %patch5 -p1 %patch6 -p1 -%patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 @@ -306,6 +304,9 @@ ant -Dbase.path="." \ -Dbndlib.jar="$(build-classpath aqute-bnd/biz.aQute.bndlib)" \ -Dbndlibg.jar="$(build-classpath aqute-bnd/aQute.libg)" \ -Dbndannotation.jar="$(build-classpath aqute-bnd/biz.aQute.bnd.annotation)" \ + -Dosgiannotation.jar="$(build-classpath osgi-annotation/osgi.annotation)" \ + -Dosgi-annotations.jar="$(build-classpath aqute-bnd/biz.aQute.bnd.annotation)" \ + -Dosgicmpn.jar="$(build-classpath osgi-compendium/osgi.cmpn)" \ -Dslf4j-api.jar="$(build-classpath slf4j/slf4j-api)" \ -Dcommons-pool.home="$(build-classpath commons-pool2)" \ -Dcommons-dbcp.home="$(build-classpath commons-dbcp2)" \