summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--auto/modules/java4
-rw-r--r--auto/modules/java_jar.sha51224
-rw-r--r--src/nxt_http_compression.c26
-rw-r--r--src/nxt_http_compression.h4
-rw-r--r--src/nxt_http_static.c2
-rw-r--r--src/nxt_main_process.c3
-rw-r--r--test/unit/applications/lang/java.py2
7 files changed, 37 insertions, 28 deletions
diff --git a/auto/modules/java b/auto/modules/java
index cd120902..d0fefde7 100644
--- a/auto/modules/java
+++ b/auto/modules/java
@@ -238,7 +238,7 @@ cat << END > $NXT_JAVA_JARS
static const char *nxt_java_system_jars[] = {
END
-NXT_TOMCAT_VERSION=9.0.98
+NXT_TOMCAT_VERSION=9.0.108
NXT_JAR_VERSION=$NXT_TOMCAT_VERSION
@@ -284,7 +284,7 @@ static const char *nxt_java_unit_jars[] = {
"$NXT_UNIT_JAR",
END
-NXT_JAR_VERSION=9.4.56.v20240826
+NXT_JAR_VERSION=9.4.58.v20250814
NXT_JAR_NAMESPACE=org/eclipse/jetty/
NXT_JAR_NAME=jetty-util
diff --git a/auto/modules/java_jar.sha512 b/auto/modules/java_jar.sha512
index e902f6b5..1df729b9 100644
--- a/auto/modules/java_jar.sha512
+++ b/auto/modules/java_jar.sha512
@@ -1,14 +1,14 @@
8ae750523f086c667f1ecb22cdd02037f217b67841757c2545100ec314145268a60cc6f381bde86659fa090f1a05de8f7cf3ebaf13fb4e737fda749a1ce77078 classgraph-4.8.179.jar
ab441acf5551a7dc81c353eaccb3b3df9e89a48987294d19e39acdb83a5b640fcdff7414cee29f5b96eaa8826647f1d5323e185018fe33a64c402d69c73c9158 ecj-3.26.0.jar
-48d5512d378d58c3df93bbe1c68d5a4b097e2dc7466992393e0731414dc0fe449312e067d0874e503dd27cb9b6a1f2da0d1f1569a7b484c1f12bd533afbe2723 jetty-http-9.4.56.v20240826.jar
-dc0d1f05a7f8477e1f7f57adb307224aadcb1e1fed6f7e5df72d9b84437bf75276c3b0f13da9d079c541ad94601bdbd7314c61477b224dbbdc93a6d5b9f98478 jetty-server-9.4.56.v20240826.jar
-025751c45cd8a23f1b436eaa1849af2421f78a2a82bc07c4175df8b4ec5dfc15247036194156897aafb8b0ec83406bbaa25e4092fea5ddd3b900da0ffdfaae19 jetty-util-9.4.56.v20240826.jar
-356c0668e2c03201c74e82491a1daf5194368dbb3a08c42c49abb9e544e814b5a1aa85465137e8da785120733ed279a297942bebf6ee8453d935648fb02a3893 tomcat-api-9.0.98.jar
-43c106be1a497b4641eed28bc5c2c60192a7240f6dd3e55850197969a275d38c9d853646dd3f313af530010b36095f8893289c8ddfed018f2537cd7ddc84be98 tomcat-el-api-9.0.98.jar
-570e6e9f4a762cad5b3190886915d93618f7292bfa3ee39abb7b9f0993704a19fbb0fd4a7727995fd7f50edf62f4b6df50d2854a6fa70ac1e8a6650a02445fd2 tomcat-jasper-9.0.98.jar
-77f3c0da8ee1af315c59cc1e6566dab7cfbdd928045aa7c921299e72b88004bd6b710f0b62b39c4a3aaa872b965b50d5f4ba43bf98a0cd39d585c6b82edeaf06 tomcat-jasper-el-9.0.98.jar
-8d825b69acb8227709cbdea1349faa6115243c5824ff751af3d5c45822dfe371506077669565e7531f278b6752be819e5e54e73284a75208d4f8784706ee6fb7 tomcat-jsp-api-9.0.98.jar
-353c858821644f7284bc272d8f23c031199439fea74b8c104bb2d054716f6a87523d4d9d38f86dca5e353b4ddff307d1cdc0d221ddda10e0626b1cf3cbda482b tomcat-juli-9.0.98.jar
-5b1a8ca4c4b3782531e154d0519f2e3fa8cdb647848e455d4af446f7fac6555ad0fa76750e0d76b02f4e7bceae147ebc96c9d3f786542defcab2d69e7b419175 tomcat-servlet-api-9.0.98.jar
-6a1729a0f251a3cb80cab476686a2c307b5e1d2827d991327f4ce6f69183a6d876cf9a886ab074eddec693fca418158407dac8844781c4667aca5575378574c6 tomcat-util-9.0.98.jar
-37dc24785e3c18d527038242056d7481635505c2609ff77ee3b249e88a7c48323f6c99a562391fef2474e6cb896f9445855eed48fc8a8ab89b8704c8ecb4193a tomcat-util-scan-9.0.98.jar
+609516a5c3b7fa9e256b768124d3c822f28ce426687a479eb57b0f2f6dc82ee6c3560f8e790394b71feebc409eda78a04d6c03254bb41127506ffcf6b7905a61 jetty-http-9.4.58.v20250814.jar
+5f2b1efe5f6279ed9c3a25d8c3a6413b195a6957500752cb7b59fc8e8bc43d01eeb2e97b619bfb74ff5ec96cd8893ba1d9d372f8a226ff197d3b452febafa146 jetty-server-9.4.58.v20250814.jar
+c4505826e68be8d8736eba5cd29fd86ada455ee5765f8d46d33085b788eb3295023b167354178441e80c97edde9f988f89bf3959c59ef8aada56e5d863673021 jetty-util-9.4.58.v20250814.jar
+65cfee9beb10eb9831af55f039d8084dcd500a9718f4c753acf99fb52d4ab8b1bd70c8a6807a4cae7096466ea344c79d366c4b115d8b1e641bc6c86e49e2c8c3 tomcat-api-9.0.108.jar
+772f68efbd68d010eb72d043c115364d65083c9a95887df79bf26feed6aa332348424ec3fbab9155dab508c11a40a31f1d1aea1205d04a180b0619497628ed32 tomcat-el-api-9.0.108.jar
+fee3afbb966efdbe49347f1942a3ba5aa275e7193de6a14a0355f49a8138b255f4123189435613976e18c55cb37f4f53e5bc8dd1b9cc178551b4fb0978e545a4 tomcat-jasper-9.0.108.jar
+93c6ac9876599a1a7c7dfc09458edcc109de0748db77514b765132814d80621a4bca431378acc916306e928119cea1157288ff81f8d88fd1661366aded8213b2 tomcat-jasper-el-9.0.108.jar
+c3bef13c90043fa179c3b7ab599c7ab227e5bf28132f314049222096a1af80b34fc28737f40973c0dc4f10f5899da524fefafc5a97981b0f18e87062a5041766 tomcat-jsp-api-9.0.108.jar
+3ea930f5da6f2e4ba90208ef4cede22decf737aad252f9c74dcf4ffaa7351ab52e153b31f41fe64fc0c7a1bae626e1e1da2de679975583740975cce4391c67d9 tomcat-juli-9.0.108.jar
+a1e93a66ffe517baa37878d085b18537c18284c8ddf3872d9b4c2ef0d6579c68f0eac57d5d15303cde485b3286bafd20e1b03136e9c86712002a31edd6081052 tomcat-servlet-api-9.0.108.jar
+cfcabcd79c56f33415b8f4095ac894c0dfa5f392fd272e2e66d61d67051b1eac026740dd21657179a651fa0eeb2f39351781771b0e38799ab1fdf277ebda9883 tomcat-util-9.0.108.jar
+0cd88e452ead14c89cd9c70b965795f5793355bc61a0cbf58355585afedcc8a24cb62968da757e253ef1b119021a543aea0058cf9fd5ab152bc185e338c3d15f tomcat-util-scan-9.0.108.jar
diff --git a/src/nxt_http_compression.c b/src/nxt_http_compression.c
index 28e53a9d..f9a94d05 100644
--- a/src/nxt_http_compression.c
+++ b/src/nxt_http_compression.c
@@ -232,14 +232,12 @@ nxt_http_comp_compress_app_response(nxt_task_t *task, nxt_http_request_t *r,
nxt_int_t
-nxt_http_comp_compress_static_response(nxt_task_t *task, nxt_file_t **f,
- nxt_file_info_t *fi,
- size_t static_buf_len,
- size_t *out_total)
+nxt_http_comp_compress_static_response(nxt_task_t *task, nxt_http_request_t *r,
+ nxt_file_t **f, nxt_file_info_t *fi,
+ size_t static_buf_len, size_t *out_total)
{
- char tmp_path[NXT_MAX_PATH_LEN];
size_t in_size, out_size, rest;
- u_char *p;
+ char *tmp_path, *p;
uint8_t *in, *out;
nxt_int_t ret;
nxt_file_t tfile;
@@ -249,13 +247,14 @@ nxt_http_comp_compress_static_response(nxt_task_t *task, nxt_file_t **f,
*out_total = 0;
- if (nxt_slow_path(strlen(rt->tmp) + 1 + strlen(template) + 1
- > NXT_MAX_PATH_LEN))
- {
+ tmp_path = nxt_mp_nget(r->mem_pool,
+ strlen(rt->tmp) + 1 + strlen(template) + 1);
+ if (nxt_slow_path(tmp_path == NULL)) {
return NXT_ERROR;
}
- p = nxt_cpymem(tmp_path, rt->tmp, strlen(rt->tmp));
+ p = tmp_path;
+ p = nxt_cpymem(p, rt->tmp, strlen(rt->tmp));
*p++ = '/';
p = nxt_cpymem(p, template, strlen(template));
*p = '\0';
@@ -266,6 +265,7 @@ nxt_http_comp_compress_static_response(nxt_task_t *task, nxt_file_t **f,
return NXT_ERROR;
}
unlink(tmp_path);
+ tfile.name = (nxt_file_name_t *)tmp_path;
in_size = nxt_file_size(fi);
out_size = nxt_http_comp_bound(in_size);
@@ -305,6 +305,12 @@ nxt_http_comp_compress_static_response(nxt_task_t *task, nxt_file_t **f,
cbytes = nxt_http_comp_compress(out + *out_total, out_size - *out_total,
in + in_size - rest, n, last);
+ if (cbytes == -1) {
+ nxt_file_close(task, &tfile);
+ nxt_mem_munmap(in, in_size);
+ nxt_mem_munmap(out, out_size);
+ return NXT_ERROR;
+ }
*out_total += cbytes;
rest -= n;
diff --git a/src/nxt_http_compression.h b/src/nxt_http_compression.h
index f178e984..99af8a66 100644
--- a/src/nxt_http_compression.h
+++ b/src/nxt_http_compression.h
@@ -93,8 +93,8 @@ extern const nxt_http_comp_operations_t nxt_http_comp_brotli_ops;
extern nxt_int_t nxt_http_comp_compress_app_response(nxt_task_t *task,
nxt_http_request_t *r, nxt_buf_t **b);
extern nxt_int_t nxt_http_comp_compress_static_response(nxt_task_t *task,
- nxt_file_t **f, nxt_file_info_t *fi, size_t static_buf_len,
- size_t *out_total);
+ nxt_http_request_t *r, nxt_file_t **f, nxt_file_info_t *fi,
+ size_t static_buf_len, size_t *out_total);
extern bool nxt_http_comp_wants_compression(void);
extern bool nxt_http_comp_compressor_is_valid(const nxt_str_t *token);
extern nxt_int_t nxt_http_comp_check_compression(nxt_task_t *task,
diff --git a/src/nxt_http_static.c b/src/nxt_http_static.c
index 78b1f150..8436b417 100644
--- a/src/nxt_http_static.c
+++ b/src/nxt_http_static.c
@@ -593,7 +593,7 @@ nxt_http_static_send(nxt_task_t *task, nxt_http_request_t *r,
nxt_int_t ret;
ret = nxt_http_comp_compress_static_response(
- task, &f, &fi,
+ task, r, &f, &fi,
NXT_HTTP_STATIC_BUF_SIZE,
&out_total);
if (ret == NXT_ERROR) {
diff --git a/src/nxt_main_process.c b/src/nxt_main_process.c
index e942c1a8..25798ea0 100644
--- a/src/nxt_main_process.c
+++ b/src/nxt_main_process.c
@@ -1730,5 +1730,8 @@ nxt_main_port_access_log_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg)
if (nxt_fast_path(port != NULL)) {
(void) nxt_port_socket_write(task, port, type, file.fd,
msg->port_msg.stream, 0, NULL);
+
+ } else {
+ nxt_file_close(task, &file);
}
}
diff --git a/test/unit/applications/lang/java.py b/test/unit/applications/lang/java.py
index 2416278b..a141b6de 100644
--- a/test/unit/applications/lang/java.py
+++ b/test/unit/applications/lang/java.py
@@ -53,7 +53,7 @@ class ApplicationJava(ApplicationProto):
os.makedirs(classes_path)
classpath = (
- f'{option.current_dir}/build/tomcat-servlet-api-9.0.98.jar'
+ f'{option.current_dir}/build/tomcat-servlet-api-9.0.108.jar'
)
ws_jars = glob.glob(