diff --git a/www/libapreq2/Makefile b/www/libapreq2/Makefile
index be0880e..c867f96 100644
--- a/www/libapreq2/Makefile
+++ b/www/libapreq2/Makefile
@@ -1,6 +1,6 @@
PORTNAME= libapreq2
PORTVERSION= 2.17
-PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= www devel
MASTER_SITES= APACHE_HTTPD/libapreq
diff --git a/www/libapreq2/files/patch-glue-Makefile.in b/www/libapreq2/files/patch-glue-Makefile.in
index 9a66859..15d67d1 100644
--- a/www/libapreq2/files/patch-glue-Makefile.in
+++ b/www/libapreq2/files/patch-glue-Makefile.in
@@ -1,6 +1,6 @@
---- ./glue/Makefile.in.orig 2009-04-13 06:32:19.000000000 +0000
-+++ ./glue/Makefile.in 2009-04-13 06:32:29.000000000 +0000
-@@ -266,7 +266,7 @@
+--- glue/Makefile.in.orig 2022-08-18 09:23:35 UTC
++++ glue/Makefile.in
+@@ -479,7 +479,7 @@ perl_install:
perl_install:
cd perl; INSTALL=1 @PERL@ @PERL_OPTS@ Makefile.PL -apxs @APACHE2_APXS@ @MM_OPTS@
diff --git a/www/libapreq2/files/patch-glue-perl-Makefile.PL b/www/libapreq2/files/patch-glue-perl-Makefile.PL
index 4387e26..f29aa7d 100644
--- a/www/libapreq2/files/patch-glue-perl-Makefile.PL
+++ b/www/libapreq2/files/patch-glue-perl-Makefile.PL
@@ -1,6 +1,6 @@
---- glue/perl/Makefile.PL.orig 2006-08-09 04:26:45.000000000 +0000
-+++ glue/perl/Makefile.PL 2008-08-25 18:07:08.000000000 +0000
-@@ -415,8 +450,8 @@
+--- glue/perl/Makefile.PL.orig 2022-08-18 09:18:20 UTC
++++ glue/perl/Makefile.PL
+@@ -460,8 +460,8 @@ ModPerl::MM::WriteMakefile(
'NAME' => '$class',
'VERSION' => '$version',
'TYPEMAPS' => [qw(@$mp2_typemaps $typemap)],
diff --git a/www/libapreq2/files/patch-library_module__cgi.c b/www/libapreq2/files/patch-library_module__cgi.c
new file mode 100644
index 0000000..7178d8d
--- /dev/null
+++ b/www/libapreq2/files/patch-library_module__cgi.c
@@ -0,0 +1,11 @@
+--- library/module_cgi.c.orig 2022-08-18 09:18:20 UTC
++++ library/module_cgi.c
+@@ -354,7 +354,7 @@ static void init_body(apreq_handle_t *handle)
+
+ if (cl_header != NULL) {
+ char *dummy;
+- apr_int64_t content_length = apr_strtoi64(cl_header, &dummy, 0);
++ apr_int64_t content_length = apr_strtoi64(cl_header, &dummy, 10);
+
+ if (dummy == cl_header || *dummy != 0) {
+ req->body_status = APREQ_ERROR_BADHEADER;
diff --git a/www/libapreq2/files/patch-library_parser__multipart.c b/www/libapreq2/files/patch-library_parser__multipart.c
new file mode 100644
index 0000000..4beb068
--- /dev/null
+++ b/www/libapreq2/files/patch-library_parser__multipart.c
@@ -0,0 +1,37 @@
+--- library/parser_multipart.c.orig 2022-08-18 09:18:20 UTC
++++ library/parser_multipart.c
+@@ -425,7 +425,7 @@ APREQ_DECLARE_PARSER(apreq_parse_multipart)
+ if (cd != NULL) {
+ s = apreq_header_attribute(cd, "name", 4,
+ &name, &nlen);
+- if (s == APR_SUCCESS && nlen) {
++ if (s == APR_SUCCESS) {
+ next_ctx->param_name = apr_pstrmemdup(pool, name,
+ nlen);
+ }
+@@ -460,14 +460,14 @@ APREQ_DECLARE_PARSER(apreq_parse_multipart)
+
+ if (cd != NULL && strncmp(cd, "form-data", 9) == 0) {
+ s = apreq_header_attribute(cd, "name", 4, &name, &nlen);
+- if (s != APR_SUCCESS || !nlen) {
++ if (s != APR_SUCCESS) {
+ ctx->status = MFD_ERROR;
+ goto mfd_parse_brigade;
+ }
+
+ s = apreq_header_attribute(cd, "filename",
+ 8, &filename, &flen);
+- if (s == APR_SUCCESS && flen) {
++ if (s == APR_SUCCESS) {
+ apreq_param_t *param;
+
+ param = apreq_param_make(pool, name, nlen,
+@@ -497,7 +497,7 @@ APREQ_DECLARE_PARSER(apreq_parse_multipart)
+
+ s = apreq_header_attribute(cd, "filename",
+ 8, &filename, &flen);
+- if (s != APR_SUCCESS || !flen || !ctx->param_name) {
++ if (s != APR_SUCCESS || !ctx->param_name) {
+ ctx->status = MFD_ERROR;
+ goto mfd_parse_brigade;
+ }
diff --git a/www/libapreq2/files/patch-library_t_parsers.c b/www/libapreq2/files/patch-library_t_parsers.c
new file mode 100644
index 0000000..3df46b0
--- /dev/null
+++ b/www/libapreq2/files/patch-library_t_parsers.c
@@ -0,0 +1,319 @@
+--- library/t/parsers.c.orig 2022-08-18 09:18:20 UTC
++++ library/t/parsers.c
+@@ -25,6 +25,7 @@ static apr_pool_t *p;
+ #define CRLF "\015\012"
+
+ static apr_pool_t *p;
++static apr_pool_t *test_pool;
+
+ static char url_data[] = "alpha=one&beta=two;omega=last%2";
+
+@@ -152,10 +153,10 @@ static void parse_urlencoded(dAT, void *ctx)
+ apreq_parser_t *parser;
+ apr_table_t *body;
+
+- body = apr_table_make(p, APREQ_DEFAULT_NELTS);
+- ba = apr_bucket_alloc_create(p);
+- bb = apr_brigade_create(p, ba);
+- parser = apreq_parser_make(p, ba, URL_ENCTYPE, apreq_parse_urlencoded,
++ body = apr_table_make(test_pool, APREQ_DEFAULT_NELTS);
++ ba = apr_bucket_alloc_create(test_pool);
++ bb = apr_brigade_create(test_pool, ba);
++ parser = apreq_parser_make(test_pool, ba, URL_ENCTYPE, apreq_parse_urlencoded,
+ 100, NULL, NULL, NULL);
+
+ APR_BRIGADE_INSERT_HEAD(bb,
+@@ -178,6 +179,7 @@ static void parse_urlencoded(dAT, void *ctx)
+ AT_str_eq(apr_table_get(body,"beta"), "two");
+ AT_str_eq(apr_table_get(body,"omega"),"last+last");
+
++ apr_pool_clear(test_pool);
+ }
+
+ static void parse_multipart(dAT, void *ctx)
+@@ -188,7 +190,7 @@ static void parse_multipart(dAT, void *ctx)
+
+ for (j = 0; j <= strlen(form_data); ++j) {
+
+- ba = apr_bucket_alloc_create(p);
++ ba = apr_bucket_alloc_create(test_pool);
+
+ /* AT_localize checks the inner loop tests itself
+ * (and interprets any such failures as being fatal),
+@@ -208,9 +210,9 @@ static void parse_multipart(dAT, void *ctx)
+ apr_status_t rv;
+ apr_bucket *e, *f;
+
+- bb = apr_brigade_create(p, ba);
+- body = apr_table_make(p, APREQ_DEFAULT_NELTS);
+- parser = apreq_parser_make(p, ba, MFD_ENCTYPE
++ bb = apr_brigade_create(test_pool, ba);
++ body = apr_table_make(test_pool, APREQ_DEFAULT_NELTS);
++ parser = apreq_parser_make(test_pool, ba, MFD_ENCTYPE
+ "; charset=\"iso-8859-1\""
+ "; boundary=\"AaB03x\"",
+ apreq_parse_multipart,
+@@ -247,7 +249,7 @@ static void parse_multipart(dAT, void *ctx)
+ AT_str_eq(val, "file1.txt");
+ t = apreq_value_to_param(val)->info;
+ vb = apreq_value_to_param(val)->upload;
+- apr_brigade_pflatten(vb, &val2, &len, p);
++ apr_brigade_pflatten(vb, &val2, &len, test_pool);
+ AT_int_eq(len, strlen("... contents of file1.txt ..." CRLF));
+ AT_mem_eq(val2 ,"... contents of file1.txt ..." CRLF, len);
+ val = apr_table_get(t, "content-type");
+@@ -257,11 +259,9 @@ static void parse_multipart(dAT, void *ctx)
+ apr_brigade_cleanup(bb);
+ }
+
+-#ifdef APR_POOL_DEBUG
+- apr_bucket_alloc_destroy(ba);
+-#endif
+ AT_delocalize();
+- apr_pool_clear(p);
++
++ apr_pool_clear(test_pool);
+ }
+ }
+
+@@ -276,17 +276,17 @@ static void parse_disable_uploads(dAT, void *ctx)
+ apreq_parser_t *parser;
+ apreq_hook_t *hook;
+
+- ba = apr_bucket_alloc_create(p);
+- bb = apr_brigade_create(p, ba);
++ ba = apr_bucket_alloc_create(test_pool);
++ bb = apr_brigade_create(test_pool, ba);
+
+ e = apr_bucket_immortal_create(form_data, strlen(form_data), ba);
+ APR_BRIGADE_INSERT_HEAD(bb, e);
+ APR_BRIGADE_INSERT_TAIL(bb, apr_bucket_eos_create(bb->bucket_alloc));
+
+- body = apr_table_make(p, APREQ_DEFAULT_NELTS);
+- hook = apreq_hook_make(p, apreq_hook_disable_uploads, NULL, NULL);
++ body = apr_table_make(test_pool, APREQ_DEFAULT_NELTS);
++ hook = apreq_hook_make(test_pool, apreq_hook_disable_uploads, NULL, NULL);
+
+- parser = apreq_parser_make(p, ba, MFD_ENCTYPE
++ parser = apreq_parser_make(test_pool, ba, MFD_ENCTYPE
+ "; charset=\"iso-8859-1\""
+ "; boundary=\"AaB03x\"",
+ apreq_parse_multipart,
+@@ -305,6 +305,8 @@ static void parse_disable_uploads(dAT, void *ctx)
+
+ val = apr_table_get(body, "pics");
+ AT_is_null(val);
++
++ apr_pool_clear(test_pool);
+ }
+
+
+@@ -316,8 +318,8 @@ static void parse_generic(dAT, void *ctx)
+ apreq_param_t *dummy;
+ apreq_parser_t *parser;
+ apr_table_t *body;
+- apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+- apr_bucket_brigade *bb = apr_brigade_create(p, ba);
++ apr_bucket_alloc_t *ba = apr_bucket_alloc_create(test_pool);
++ apr_bucket_brigade *bb = apr_brigade_create(test_pool, ba);
+ apr_bucket *e = apr_bucket_immortal_create(xml_data,
+ strlen(xml_data),
+ ba);
+@@ -325,19 +327,21 @@ static void parse_generic(dAT, void *ctx)
+ APR_BRIGADE_INSERT_HEAD(bb, e);
+ APR_BRIGADE_INSERT_TAIL(bb, apr_bucket_eos_create(ba));
+
+- body = apr_table_make(p, APREQ_DEFAULT_NELTS);
++ body = apr_table_make(test_pool, APREQ_DEFAULT_NELTS);
+
+- parser = apreq_parser_make(p, ba, "application/xml",
++ parser = apreq_parser_make(test_pool, ba, "application/xml",
+ apreq_parse_generic, 1000, NULL, NULL, NULL);
+
+ rv = apreq_parser_run(parser, body, bb);
+ AT_int_eq(rv, APR_SUCCESS);
+ dummy = *(apreq_param_t **)parser->ctx;
+ AT_not_null(dummy);
+- apr_brigade_pflatten(dummy->upload, &val, &vlen, p);
++ apr_brigade_pflatten(dummy->upload, &val, &vlen, test_pool);
+
+ AT_int_eq(vlen, strlen(xml_data));
+ AT_mem_eq(val, xml_data, vlen);
++
++ apr_pool_clear(test_pool);
+ }
+
+ static void hook_discard(dAT, void *ctx)
+@@ -347,8 +351,8 @@ static void hook_discard(dAT, void *ctx)
+ apreq_parser_t *parser;
+ apreq_hook_t *hook;
+ apr_table_t *body;
+- apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+- apr_bucket_brigade *bb = apr_brigade_create(p, ba);
++ apr_bucket_alloc_t *ba = apr_bucket_alloc_create(test_pool);
++ apr_bucket_brigade *bb = apr_brigade_create(test_pool, ba);
+ apr_bucket *e = apr_bucket_immortal_create(xml_data,
+ strlen(xml_data),
+ ba);
+@@ -356,10 +360,10 @@ static void hook_discard(dAT, void *ctx)
+ APR_BRIGADE_INSERT_HEAD(bb, e);
+ APR_BRIGADE_INSERT_TAIL(bb, apr_bucket_eos_create(ba));
+
+- body = apr_table_make(p, APREQ_DEFAULT_NELTS);
++ body = apr_table_make(test_pool, APREQ_DEFAULT_NELTS);
+
+- hook = apreq_hook_make(p, apreq_hook_discard_brigade, NULL, NULL);
+- parser = apreq_parser_make(p, ba, "application/xml",
++ hook = apreq_hook_make(test_pool, apreq_hook_discard_brigade, NULL, NULL);
++ parser = apreq_parser_make(test_pool, ba, "application/xml",
+ apreq_parse_generic, 1000, NULL, hook, NULL);
+
+
+@@ -369,6 +373,8 @@ static void hook_discard(dAT, void *ctx)
+ AT_not_null(dummy);
+ AT_not_null(dummy->upload);
+ AT_ok(APR_BRIGADE_EMPTY(dummy->upload), "brigade has no contents");
++
++ apr_pool_clear(test_pool);
+ }
+
+
+@@ -388,18 +394,18 @@ static void parse_related(dAT, void *ctx)
+ apreq_parser_t *parser;
+ apreq_hook_t *xml_hook;
+ apreq_param_t *param;
+- apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+- apr_bucket_brigade *bb = apr_brigade_create(p, ba);
++ apr_bucket_alloc_t *ba = apr_bucket_alloc_create(test_pool);
++ apr_bucket_brigade *bb = apr_brigade_create(test_pool, ba);
+ apr_bucket *e = apr_bucket_immortal_create(rel_data,
+ strlen(rel_data),
+ bb->bucket_alloc);
+
+ APR_BRIGADE_INSERT_HEAD(bb, e);
+ APR_BRIGADE_INSERT_TAIL(bb, apr_bucket_eos_create(bb->bucket_alloc));
+- xml_hook = apreq_hook_make(p, apreq_hook_apr_xml_parser, NULL, NULL);
++ xml_hook = apreq_hook_make(test_pool, apreq_hook_apr_xml_parser, NULL, NULL);
+
+- body = apr_table_make(p, APREQ_DEFAULT_NELTS);
+- parser = apreq_parser_make(p, ba, ct, apreq_parse_multipart,
++ body = apr_table_make(test_pool, APREQ_DEFAULT_NELTS);
++ parser = apreq_parser_make(test_pool, ba, ct, apreq_parse_multipart,
+ 1000, NULL, xml_hook, NULL);
+
+ rv = apreq_parser_run(parser, body, bb);
+@@ -414,12 +420,12 @@ static void parse_related(dAT, void *ctx)
+ val = apr_table_get(param->info, "Content-Length");
+ AT_str_eq(val, "400");
+ AT_not_null(param->upload);
+- apr_brigade_pflatten(param->upload, &val2, &vlen, p);
++ apr_brigade_pflatten(param->upload, &val2, &vlen, test_pool);
+ AT_int_eq(vlen, 400);
+ AT_mem_eq(val2, rel_data + 122, 400);
+
+ doc = *(apr_xml_doc **)xml_hook->ctx;
+- apr_xml_to_text(p, doc->root, APR_XML_X2T_FULL,
++ apr_xml_to_text(test_pool, doc->root, APR_XML_X2T_FULL,
+ doc->namespaces, &ns_map, &val, &vlen);
+ AT_int_eq(vlen, 400 - 22);
+ AT_mem_eq(val, rel_data + 122 + 23, 400 - 23);
+@@ -430,7 +436,7 @@ static void parse_related(dAT, void *ctx)
+ param = apreq_value_to_param(val);
+ AT_not_null(param);
+ AT_not_null(param->upload);
+- apr_brigade_pflatten(param->upload, &val2, &vlen, p);
++ apr_brigade_pflatten(param->upload, &val2, &vlen, test_pool);
+ AT_int_eq(vlen, dlen);
+ AT_mem_eq(val2, data, vlen);
+
+@@ -439,9 +445,11 @@ static void parse_related(dAT, void *ctx)
+ param = apreq_value_to_param(val);
+ AT_not_null(param);
+ AT_not_null(param->upload);
+- apr_brigade_pflatten(param->upload, &val2, &vlen, p);
++ apr_brigade_pflatten(param->upload, &val2, &vlen, test_pool);
+ AT_int_eq(vlen, dlen);
+ AT_mem_eq(val2, data, vlen);
++
++ apr_pool_clear(test_pool);
+ }
+
+ typedef struct {
+@@ -461,9 +469,9 @@ static void parse_mixed(dAT, void *ctx)
+ array_elt *elt;
+ char ct[] = MFD_ENCTYPE "; charset=\"iso-8859-1\"; boundary=\"AaB03x\"";
+ apreq_parser_t *parser;
+- apr_table_t *body = apr_table_make(p, APREQ_DEFAULT_NELTS);
+- apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+- apr_bucket_brigade *bb = apr_brigade_create(p, ba);
++ apr_table_t *body = apr_table_make(test_pool, APREQ_DEFAULT_NELTS);
++ apr_bucket_alloc_t *ba = apr_bucket_alloc_create(test_pool);
++ apr_bucket_brigade *bb = apr_brigade_create(test_pool, ba);
+ apr_bucket *e = apr_bucket_immortal_create(mix_data,
+ strlen(mix_data),
+ bb->bucket_alloc);
+@@ -471,7 +479,7 @@ static void parse_mixed(dAT, void *ctx)
+ APR_BRIGADE_INSERT_HEAD(bb, e);
+ APR_BRIGADE_INSERT_TAIL(bb, apr_bucket_eos_create(bb->bucket_alloc));
+
+- parser = apreq_parser_make(p, ba, ct, apreq_parse_multipart,
++ parser = apreq_parser_make(test_pool, ba, ct, apreq_parse_multipart,
+ 1000, NULL, NULL, NULL);
+
+ rv = apreq_parser_run(parser, body, bb);
+@@ -490,7 +498,7 @@ static void parse_mixed(dAT, void *ctx)
+ param = apreq_value_to_param(val);
+
+ AT_not_null(param->upload);
+- apr_brigade_pflatten(param->upload, &val2, &vlen, p);
++ apr_brigade_pflatten(param->upload, &val2, &vlen, test_pool);
+ AT_int_eq(vlen, strlen("... contents of file1.txt ..."));
+ AT_mem_eq(val2, "... contents of file1.txt ...", vlen);
+
+@@ -503,10 +511,11 @@ static void parse_mixed(dAT, void *ctx)
+
+ param = apreq_value_to_param(elt->val);
+ AT_not_null(param->upload);
+- apr_brigade_pflatten(param->upload, &val2, &vlen, p);
++ apr_brigade_pflatten(param->upload, &val2, &vlen, test_pool);
+ AT_int_eq(vlen, strlen("...contents of file2.gif..."));
+ AT_mem_eq(val2, "...contents of file2.gif...", vlen);
+
++ apr_pool_clear(test_pool);
+ }
+
+
+@@ -514,7 +523,6 @@ int main(int argc, char *argv[])
+
+ int main(int argc, char *argv[])
+ {
+- apr_pool_t *test_pool;
+ unsigned i, plan = 0;
+ dAT;
+ at_test_t test_list [] = {
+@@ -532,10 +540,8 @@ int main(int argc, char *argv[])
+ atexit(apr_terminate);
+
+ apr_pool_create(&p, NULL);
+- apr_pool_create(&test_pool, NULL);
+ apreq_initialize(p);
+
+-
+ AT = at_create(0, at_report_stdout_make());
+
+ for (i = 0; i < sizeof(test_list) / sizeof(at_test_t); ++i)
+@@ -543,10 +549,14 @@ int main(int argc, char *argv[])
+
+ AT_begin(plan);
+
++ apr_pool_create(&test_pool, p);
+ for (i = 0; i < sizeof(test_list) / sizeof(at_test_t); ++i)
+ AT_run(&test_list[i]);
++ apr_pool_destroy(test_pool);
+
+ AT_end();
++
++ apr_pool_destroy(p);
+
+ return 0;
+ }
diff --git a/www/libapreq2/files/patch-library_t_util.c b/www/libapreq2/files/patch-library_t_util.c
new file mode 100644
index 0000000..8924da4
--- /dev/null
+++ b/www/libapreq2/files/patch-library_t_util.c
@@ -0,0 +1,58 @@
+--- library/t/util.c.orig 2022-08-18 09:18:20 UTC
++++ library/t/util.c
+@@ -152,7 +152,7 @@ static void test_cp1252_to_utf8(dAT, void *ctx)
+ static void test_cp1252_to_utf8(dAT, void *ctx)
+ {
+ char src1[] = "%C3%80%E3%82%a2"; /* A_GRAVE KATAKANA_A as utf8 */
+- char src2[5];
++ char src2[6]; /* + '\0' */
+ unsigned char expect[16];
+ apr_size_t slen;
+
+@@ -270,7 +270,9 @@ static void test_header_attribute(dAT, void *ctx)
+
+ static void test_header_attribute(dAT, void *ctx)
+ {
+- const char hdr[] = "name=\"filename=foo\"; filename=\"quux.txt\"";
++ const char hdr[] = "form-data; name=\"filename=foo\"; filename=\"quux.txt\"";
++ const char opera[] = "form-data; name=\"foo\"; filename=\"\"";
++ const char empty[] = "form-data; name=\"\"; filename=\"\"";
+ const char *val;
+ apr_size_t vlen;
+
+@@ -278,12 +280,25 @@ static void test_header_attribute(dAT, void *ctx)
+ APR_SUCCESS);
+ AT_int_eq(vlen, 12);
+ AT_mem_eq("filename=foo", val, 12);
+-
+ AT_int_eq(apreq_header_attribute(hdr, "filename", 8, &val, &vlen),
+ APR_SUCCESS);
+ AT_int_eq(vlen, 8);
+ AT_mem_eq("quux.txt", val, 8);
+
++ AT_int_eq(apreq_header_attribute(opera, "name", 4, &val, &vlen),
++ APR_SUCCESS);
++ AT_int_eq(vlen, 3);
++ AT_mem_eq("foo", val, 3);
++ AT_int_eq(apreq_header_attribute(opera, "filename", 8, &val, &vlen),
++ APR_SUCCESS);
++ AT_int_eq(vlen, 0);
++
++ AT_int_eq(apreq_header_attribute(empty, "name", 4, &val, &vlen),
++ APR_SUCCESS);
++ AT_int_eq(vlen,0);
++ AT_int_eq(apreq_header_attribute(empty, "filename", 8, &val, &vlen),
++ APR_SUCCESS);
++ AT_int_eq(vlen, 0);
+ }
+
+ static void test_brigade_concat(dAT, void *ctx)
+@@ -315,7 +330,7 @@ int main(int argc, char *argv[])
+ { dT(test_join, 0) },
+ { dT(test_brigade_fwrite, 0) },
+ { dT(test_file_mktemp, 0) },
+- { dT(test_header_attribute, 6) },
++ { dT(test_header_attribute, 15) },
+ { dT(test_brigade_concat, 0) },
+ };
+
diff --git a/www/libapreq2/files/patch-module-Makefile.in b/www/libapreq2/files/patch-module-Makefile.in
index bc8b746..1b441c8 100644
--- a/www/libapreq2/files/patch-module-Makefile.in
+++ b/www/libapreq2/files/patch-module-Makefile.in
@@ -1,5 +1,5 @@
---- module/Makefile.in.orig 2023-03-13 19:18:13.887355000 +0100
-+++ module/Makefile.in 2023-03-13 19:19:15.902362000 +0100
+--- module/Makefile.in.orig 2022-08-18 09:23:35 UTC
++++ module/Makefile.in
@@ -100,7 +100,7 @@ CONFIG_CLEAN_VPATH_FILES =
CONFIG_HEADER = $(top_builddir)/include/apreq_config.h
CONFIG_CLEAN_FILES =
diff --git a/www/libapreq2/files/patch-module_apache2_filter.c b/www/libapreq2/files/patch-module_apache2_filter.c
new file mode 100644
index 0000000..0e33110
--- /dev/null
+++ b/www/libapreq2/files/patch-module_apache2_filter.c
@@ -0,0 +1,11 @@
+--- module/apache2/filter.c.orig 2022-08-18 09:18:20 UTC
++++ module/apache2/filter.c
+@@ -125,7 +125,7 @@ void apreq_filter_init_context(ap_filter_t *f)
+
+ if (cl_header != NULL) {
+ char *dummy;
+- apr_uint64_t content_length = apr_strtoi64(cl_header,&dummy,0);
++ apr_uint64_t content_length = apr_strtoi64(cl_header,&dummy,10);
+
+ if (dummy == NULL || *dummy != 0) {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, APR_EGENERAL, r,
diff --git a/www/libapreq2/files/patch-module_t_conf_extra.conf.in b/www/libapreq2/files/patch-module_t_conf_extra.conf.in
new file mode 100644
index 0000000..2dcc8ad
--- /dev/null
+++ b/www/libapreq2/files/patch-module_t_conf_extra.conf.in
@@ -0,0 +1,14 @@
+--- module/t/conf/extra.conf.in.orig 2022-08-18 09:18:20 UTC
++++ module/t/conf/extra.conf.in
+@@ -2,7 +2,10 @@
+ ScriptAlias /cgi-bin/ "@ServerRoot@/cgi-bin/"
+
+
+-
++
++ DumpIoInput on
++ DumpIoOutput on
++
+
+
+ AllowOverride None