mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-23 09:10:43 +00:00
- Update to 2.0.55
This commit is contained in:
parent
c9bebcdd35
commit
f5baa45806
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=145377
@ -8,8 +8,7 @@
|
||||
#
|
||||
|
||||
PORTNAME= apache
|
||||
PORTVERSION= 2.0.54
|
||||
PORTREVISION= 4
|
||||
PORTVERSION= 2.0.55
|
||||
CATEGORIES= www
|
||||
MASTER_SITES= ${MASTER_SITE_APACHE_HTTPD} \
|
||||
${MASTER_SITE_LOCAL:S/%SUBDIR%/clement/}:powerlogo
|
||||
|
@ -103,7 +103,7 @@ MAKE_ENV+= EXAMPLESDIR=${EXAMPLESDIR}
|
||||
MAKE_ENV+= NOPORTDOCS=yes
|
||||
.endif
|
||||
|
||||
MAN1= dbmmanage.1 htdigest.1 htpasswd.1
|
||||
MAN1= dbmmanage.1 htdigest.1 htpasswd.1 htdbm.1
|
||||
MAN8= ab.8 apachectl.8 apxs.8 httpd.8 logresolve.8 rotatelogs.8 suexec.8
|
||||
|
||||
.if defined(WITHOUT_WWW)
|
||||
|
@ -1,4 +1,4 @@
|
||||
MD5 (apache2/httpd-2.0.54.tar.bz2) = 4ae8a38c6b5db9046616ce10a0d551a2
|
||||
SIZE (apache2/httpd-2.0.54.tar.bz2) = 5566979
|
||||
MD5 (apache2/httpd-2.0.55.tar.bz2) = f1b5b65c8661db9ffe38b5a4a865a0e2
|
||||
SIZE (apache2/httpd-2.0.55.tar.bz2) = 4745220
|
||||
MD5 (apache2/powerlogo.gif) = 0f106073b3c7844cf22d4df126b27c62
|
||||
SIZE (apache2/powerlogo.gif) = 5279
|
||||
|
@ -1,80 +0,0 @@
|
||||
--- modules/http/http_protocol.c (original)
|
||||
+++ modules/http/http_protocol.c Tue Aug 23 01:36:16 2005
|
||||
@@ -2856,18 +2856,35 @@
|
||||
#define MIN_LENGTH(len1, len2) ((len1 > len2) ? len2 : len1)
|
||||
request_rec *r = f->r;
|
||||
conn_rec *c = r->connection;
|
||||
- byterange_ctx *ctx = f->ctx;
|
||||
+ byterange_ctx *ctx;
|
||||
apr_bucket *e;
|
||||
apr_bucket_brigade *bsend;
|
||||
apr_off_t range_start;
|
||||
apr_off_t range_end;
|
||||
char *current;
|
||||
- apr_off_t bb_length;
|
||||
apr_off_t clength = 0;
|
||||
apr_status_t rv;
|
||||
int found = 0;
|
||||
|
||||
- if (!ctx) {
|
||||
+ /* Iterate through the brigade until reaching EOS or a bucket with
|
||||
+ * unknown length. */
|
||||
+ for (e = APR_BRIGADE_FIRST(bb);
|
||||
+ (e != APR_BRIGADE_SENTINEL(bb) && !APR_BUCKET_IS_EOS(e)
|
||||
+ && e->length != (apr_size_t)-1);
|
||||
+ e = APR_BUCKET_NEXT(e)) {
|
||||
+ clength += e->length;
|
||||
+ }
|
||||
+
|
||||
+ /* Don't attempt to do byte range work if this brigade doesn't
|
||||
+ * contain an EOS, or if any of the buckets has an unknown length;
|
||||
+ * this avoids the cases where it is expensive to perform
|
||||
+ * byteranging (i.e. may require arbitrary amounts of memory). */
|
||||
+ if (!APR_BUCKET_IS_EOS(e) || clength <= 0) {
|
||||
+ ap_remove_output_filter(f);
|
||||
+ return ap_pass_brigade(f->next, bb);
|
||||
+ }
|
||||
+
|
||||
+ {
|
||||
int num_ranges = ap_set_byterange(r);
|
||||
|
||||
/* We have nothing to do, get out of the way. */
|
||||
@@ -2876,7 +2893,7 @@
|
||||
return ap_pass_brigade(f->next, bb);
|
||||
}
|
||||
|
||||
- ctx = f->ctx = apr_pcalloc(r->pool, sizeof(*ctx));
|
||||
+ ctx = apr_pcalloc(r->pool, sizeof(*ctx));
|
||||
ctx->num_ranges = num_ranges;
|
||||
/* create a brigade in case we never call ap_save_brigade() */
|
||||
ctx->bb = apr_brigade_create(r->pool, c->bucket_alloc);
|
||||
@@ -2902,29 +2919,6 @@
|
||||
ap_xlate_proto_to_ascii(ctx->bound_head, strlen(ctx->bound_head));
|
||||
}
|
||||
}
|
||||
-
|
||||
- /* We can't actually deal with byte-ranges until we have the whole brigade
|
||||
- * because the byte-ranges can be in any order, and according to the RFC,
|
||||
- * we SHOULD return the data in the same order it was requested.
|
||||
- *
|
||||
- * XXX: We really need to dump all bytes prior to the start of the earliest
|
||||
- * range, and only slurp up to the end of the latest range. By this we
|
||||
- * mean that we should peek-ahead at the lowest first byte of any range,
|
||||
- * and the highest last byte of any range.
|
||||
- */
|
||||
- if (!APR_BUCKET_IS_EOS(APR_BRIGADE_LAST(bb))) {
|
||||
- ap_save_brigade(f, &ctx->bb, &bb, r->pool);
|
||||
- return APR_SUCCESS;
|
||||
- }
|
||||
-
|
||||
- /* Prepend any earlier saved brigades. */
|
||||
- APR_BRIGADE_PREPEND(bb, ctx->bb);
|
||||
-
|
||||
- /* It is possible that we won't have a content length yet, so we have to
|
||||
- * compute the length before we can actually do the byterange work.
|
||||
- */
|
||||
- apr_brigade_length(bb, 1, &bb_length);
|
||||
- clength = (apr_off_t)bb_length;
|
||||
|
||||
/* this brigade holds what we will be sending */
|
||||
bsend = apr_brigade_create(r->pool, c->bucket_alloc);
|
@ -1,11 +0,0 @@
|
||||
--- modules/ssl/ssl_engine_kernel.c 2005/06/08 09:00:24 189561
|
||||
+++ modules/ssl/ssl_engine_kernel.c 2005/06/08 09:08:09 189562
|
||||
@@ -1398,7 +1398,7 @@
|
||||
BIO_printf(bio, ", nextUpdate: ");
|
||||
ASN1_UTCTIME_print(bio, X509_CRL_get_nextUpdate(crl));
|
||||
|
||||
- n = BIO_read(bio, buff, sizeof(buff));
|
||||
+ n = BIO_read(bio, buff, sizeof(buff) - 1);
|
||||
buff[n] = '\0';
|
||||
|
||||
BIO_free(bio);
|
@ -1,20 +0,0 @@
|
||||
--- server/protocol.c 2005/07/14 16:49:17 219060
|
||||
+++ server/protocol.c 2005/07/14 16:51:55 219061
|
||||
@@ -885,6 +885,15 @@
|
||||
apr_brigade_destroy(tmp_bb);
|
||||
return r;
|
||||
}
|
||||
+
|
||||
+ if (apr_table_get(r->headers_in, "Transfer-Encoding")
|
||||
+ && apr_table_get(r->headers_in, "Content-Length")) {
|
||||
+ /* 2616 section 4.4, point 3: "if both Transfer-Encoding
|
||||
+ * and Content-Length are received, the latter MUST be
|
||||
+ * ignored"; so unset it here to prevent any confusion
|
||||
+ * later. */
|
||||
+ apr_table_unset(r->headers_in, "Content-Length");
|
||||
+ }
|
||||
}
|
||||
else {
|
||||
if (r->header_only) {
|
||||
|
||||
|
@ -1,54 +0,0 @@
|
||||
--- srclib/pcre/pcre.c.orig Wed Nov 24 20:31:09 2004
|
||||
+++ srclib/pcre/pcre.c Thu Aug 25 22:14:56 2005
|
||||
@@ -714,7 +714,18 @@
|
||||
int min = 0;
|
||||
int max = -1;
|
||||
|
||||
+/* Read the minimum value and do a paranoid check: a negative value indicates
|
||||
+an integer overflow. */
|
||||
+
|
||||
while ((cd->ctypes[*p] & ctype_digit) != 0) min = min * 10 + *p++ - '0';
|
||||
+if (min < 0 || min > 65535)
|
||||
+ {
|
||||
+ *errorptr = ERR5;
|
||||
+ return p;
|
||||
+ }
|
||||
+
|
||||
+/* Read the maximum value if there is one, and again do a paranoid on its size.
|
||||
+Also, max must not be less than min. */
|
||||
|
||||
if (*p == '}') max = min; else
|
||||
{
|
||||
@@ -722,6 +733,11 @@
|
||||
{
|
||||
max = 0;
|
||||
while((cd->ctypes[*p] & ctype_digit) != 0) max = max * 10 + *p++ - '0';
|
||||
+ if (max < 0 || max > 65535)
|
||||
+ {
|
||||
+ *errorptr = ERR5;
|
||||
+ return p;
|
||||
+ }
|
||||
if (max < min)
|
||||
{
|
||||
*errorptr = ERR4;
|
||||
@@ -730,16 +746,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
-/* Do paranoid checks, then fill in the required variables, and pass back the
|
||||
-pointer to the terminating '}'. */
|
||||
+/* Fill in the required variables, and pass back the pointer to the terminating
|
||||
+'}'. */
|
||||
|
||||
-if (min > 65535 || max > 65535)
|
||||
- *errorptr = ERR5;
|
||||
-else
|
||||
- {
|
||||
- *minp = min;
|
||||
- *maxp = max;
|
||||
- }
|
||||
+*minp = min;
|
||||
+*maxp = max;
|
||||
return p;
|
||||
}
|
||||
|
@ -1,14 +0,0 @@
|
||||
--- modules/ssl/ssl_engine_kernel.c 2005/08/30 15:54:34 264799
|
||||
+++ modules/ssl/ssl_engine_kernel.c 2005/08/30
|
||||
15:57:38 264800
|
||||
@@ -406,8 +406,8 @@
|
||||
(!(verify_old & SSL_VERIFY_PEER) &&
|
||||
(verify & SSL_VERIFY_PEER)) ||
|
||||
|
||||
- (!(verify_old & SSL_VERIFY_PEER_STRICT) &&
|
||||
- (verify & SSL_VERIFY_PEER_STRICT)))
|
||||
+ (!(verify_old & SSL_VERIFY_FAIL_IF_NO_PEER_CERT) &&
|
||||
+ (verify & SSL_VERIFY_FAIL_IF_NO_PEER_CERT)))
|
||||
{
|
||||
renegotiate = TRUE;
|
||||
/* optimization */
|
@ -1,112 +0,0 @@
|
||||
--- srclib/apr-util/misc/apr_reslist.c.orig Fri Feb 13 04:52:43 2004
|
||||
+++ srclib/apr-util/misc/apr_reslist.c Mon Mar 15 08:21:26 2004
|
||||
@@ -49,6 +49,7 @@
|
||||
int smax; /* soft maximum on the total number of resources */
|
||||
int hmax; /* hard maximum on the total number of resources */
|
||||
apr_interval_time_t ttl; /* TTL when we have too many resources */
|
||||
+ apr_interval_time_t timeout; /* Timeout for waiting on resource */
|
||||
apr_reslist_constructor constructor;
|
||||
apr_reslist_destructor destructor;
|
||||
void *params; /* opaque data passed to constructor and destructor calls */
|
||||
@@ -118,12 +119,9 @@
|
||||
res = apr_pcalloc(reslist->pool, sizeof(*res));
|
||||
|
||||
rv = reslist->constructor(&res->opaque, reslist->params, reslist->pool);
|
||||
- if (rv != APR_SUCCESS) {
|
||||
- return rv;
|
||||
- }
|
||||
|
||||
*ret_res = res;
|
||||
- return APR_SUCCESS;
|
||||
+ return rv;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -132,14 +130,7 @@
|
||||
*/
|
||||
static apr_status_t destroy_resource(apr_reslist_t *reslist, apr_res_t *res)
|
||||
{
|
||||
- apr_status_t rv;
|
||||
-
|
||||
- rv = reslist->destructor(res->opaque, reslist->params, reslist->pool);
|
||||
- if (rv != APR_SUCCESS) {
|
||||
- return rv;
|
||||
- }
|
||||
-
|
||||
- return APR_SUCCESS;
|
||||
+ return reslist->destructor(res->opaque, reslist->params, reslist->pool);
|
||||
}
|
||||
|
||||
static apr_status_t reslist_cleanup(void *data_)
|
||||
@@ -187,6 +178,7 @@
|
||||
/* Create the resource */
|
||||
rv = create_resource(reslist, &res);
|
||||
if (rv != APR_SUCCESS) {
|
||||
+ free_container(reslist, res);
|
||||
apr_thread_mutex_unlock(reslist->listlock);
|
||||
return rv;
|
||||
}
|
||||
@@ -313,7 +305,15 @@
|
||||
* a new one, or something becomes free. */
|
||||
else while (reslist->ntotal >= reslist->hmax
|
||||
&& reslist->nidle <= 0) {
|
||||
- apr_thread_cond_wait(reslist->avail, reslist->listlock);
|
||||
+ if (reslist->timeout) {
|
||||
+ if ((rv = apr_thread_cond_timedwait(reslist->avail,
|
||||
+ reslist->listlock, reslist->timeout)) != APR_SUCCESS) {
|
||||
+ apr_thread_mutex_unlock(reslist->listlock);
|
||||
+ return rv;
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ apr_thread_cond_wait(reslist->avail, reslist->listlock);
|
||||
}
|
||||
/* If we popped out of the loop, first try to see if there
|
||||
* are new resources available for immediate use. */
|
||||
@@ -329,17 +329,13 @@
|
||||
* a resource to fill the slot and use it. */
|
||||
else {
|
||||
rv = create_resource(reslist, &res);
|
||||
-
|
||||
- if (rv != APR_SUCCESS) {
|
||||
- apr_thread_mutex_unlock(reslist->listlock);
|
||||
- return rv;
|
||||
+ if (rv == APR_SUCCESS) {
|
||||
+ reslist->ntotal++;
|
||||
+ *resource = res->opaque;
|
||||
}
|
||||
-
|
||||
- reslist->ntotal++;
|
||||
- *resource = res->opaque;
|
||||
free_container(reslist, res);
|
||||
apr_thread_mutex_unlock(reslist->listlock);
|
||||
- return APR_SUCCESS;
|
||||
+ return rv;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,6 +352,23 @@
|
||||
apr_thread_mutex_unlock(reslist->listlock);
|
||||
|
||||
return reslist_maint(reslist);
|
||||
+}
|
||||
+
|
||||
+APU_DECLARE(void) apr_reslist_timeout_set(apr_reslist_t *reslist,
|
||||
+ apr_interval_time_t timeout)
|
||||
+{
|
||||
+ reslist->timeout = timeout;
|
||||
+}
|
||||
+
|
||||
+APU_DECLARE(apr_status_t) apr_reslist_invalidate(apr_reslist_t *reslist,
|
||||
+ void *resource)
|
||||
+{
|
||||
+ apr_status_t ret;
|
||||
+ apr_thread_mutex_lock(reslist->listlock);
|
||||
+ ret = reslist->destructor(resource, reslist->params, reslist->pool);
|
||||
+ reslist->ntotal--;
|
||||
+ apr_thread_mutex_unlock(reslist->listlock);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
#endif /* APR_HAS_THREADS */
|
||||
|
@ -269,7 +269,6 @@ share/apache2/build/special.mk
|
||||
%%ERROR%%www/error-dist/HTTP_INTERNAL_SERVER_ERROR.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_LENGTH_REQUIRED.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_METHOD_NOT_ALLOWED.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_NOT_ACCEPTABLE.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_NOT_FOUND.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_NOT_IMPLEMENTED.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_PRECONDITION_FAILED.html.var
|
||||
|
@ -8,8 +8,7 @@
|
||||
#
|
||||
|
||||
PORTNAME= apache
|
||||
PORTVERSION= 2.0.54
|
||||
PORTREVISION= 4
|
||||
PORTVERSION= 2.0.55
|
||||
CATEGORIES= www
|
||||
MASTER_SITES= ${MASTER_SITE_APACHE_HTTPD} \
|
||||
${MASTER_SITE_LOCAL:S/%SUBDIR%/clement/}:powerlogo
|
||||
|
@ -103,7 +103,7 @@ MAKE_ENV+= EXAMPLESDIR=${EXAMPLESDIR}
|
||||
MAKE_ENV+= NOPORTDOCS=yes
|
||||
.endif
|
||||
|
||||
MAN1= dbmmanage.1 htdigest.1 htpasswd.1
|
||||
MAN1= dbmmanage.1 htdigest.1 htpasswd.1 htdbm.1
|
||||
MAN8= ab.8 apachectl.8 apxs.8 httpd.8 logresolve.8 rotatelogs.8 suexec.8
|
||||
|
||||
.if defined(WITHOUT_WWW)
|
||||
|
@ -1,4 +1,4 @@
|
||||
MD5 (apache2/httpd-2.0.54.tar.bz2) = 4ae8a38c6b5db9046616ce10a0d551a2
|
||||
SIZE (apache2/httpd-2.0.54.tar.bz2) = 5566979
|
||||
MD5 (apache2/httpd-2.0.55.tar.bz2) = f1b5b65c8661db9ffe38b5a4a865a0e2
|
||||
SIZE (apache2/httpd-2.0.55.tar.bz2) = 4745220
|
||||
MD5 (apache2/powerlogo.gif) = 0f106073b3c7844cf22d4df126b27c62
|
||||
SIZE (apache2/powerlogo.gif) = 5279
|
||||
|
@ -1,80 +0,0 @@
|
||||
--- modules/http/http_protocol.c (original)
|
||||
+++ modules/http/http_protocol.c Tue Aug 23 01:36:16 2005
|
||||
@@ -2856,18 +2856,35 @@
|
||||
#define MIN_LENGTH(len1, len2) ((len1 > len2) ? len2 : len1)
|
||||
request_rec *r = f->r;
|
||||
conn_rec *c = r->connection;
|
||||
- byterange_ctx *ctx = f->ctx;
|
||||
+ byterange_ctx *ctx;
|
||||
apr_bucket *e;
|
||||
apr_bucket_brigade *bsend;
|
||||
apr_off_t range_start;
|
||||
apr_off_t range_end;
|
||||
char *current;
|
||||
- apr_off_t bb_length;
|
||||
apr_off_t clength = 0;
|
||||
apr_status_t rv;
|
||||
int found = 0;
|
||||
|
||||
- if (!ctx) {
|
||||
+ /* Iterate through the brigade until reaching EOS or a bucket with
|
||||
+ * unknown length. */
|
||||
+ for (e = APR_BRIGADE_FIRST(bb);
|
||||
+ (e != APR_BRIGADE_SENTINEL(bb) && !APR_BUCKET_IS_EOS(e)
|
||||
+ && e->length != (apr_size_t)-1);
|
||||
+ e = APR_BUCKET_NEXT(e)) {
|
||||
+ clength += e->length;
|
||||
+ }
|
||||
+
|
||||
+ /* Don't attempt to do byte range work if this brigade doesn't
|
||||
+ * contain an EOS, or if any of the buckets has an unknown length;
|
||||
+ * this avoids the cases where it is expensive to perform
|
||||
+ * byteranging (i.e. may require arbitrary amounts of memory). */
|
||||
+ if (!APR_BUCKET_IS_EOS(e) || clength <= 0) {
|
||||
+ ap_remove_output_filter(f);
|
||||
+ return ap_pass_brigade(f->next, bb);
|
||||
+ }
|
||||
+
|
||||
+ {
|
||||
int num_ranges = ap_set_byterange(r);
|
||||
|
||||
/* We have nothing to do, get out of the way. */
|
||||
@@ -2876,7 +2893,7 @@
|
||||
return ap_pass_brigade(f->next, bb);
|
||||
}
|
||||
|
||||
- ctx = f->ctx = apr_pcalloc(r->pool, sizeof(*ctx));
|
||||
+ ctx = apr_pcalloc(r->pool, sizeof(*ctx));
|
||||
ctx->num_ranges = num_ranges;
|
||||
/* create a brigade in case we never call ap_save_brigade() */
|
||||
ctx->bb = apr_brigade_create(r->pool, c->bucket_alloc);
|
||||
@@ -2902,29 +2919,6 @@
|
||||
ap_xlate_proto_to_ascii(ctx->bound_head, strlen(ctx->bound_head));
|
||||
}
|
||||
}
|
||||
-
|
||||
- /* We can't actually deal with byte-ranges until we have the whole brigade
|
||||
- * because the byte-ranges can be in any order, and according to the RFC,
|
||||
- * we SHOULD return the data in the same order it was requested.
|
||||
- *
|
||||
- * XXX: We really need to dump all bytes prior to the start of the earliest
|
||||
- * range, and only slurp up to the end of the latest range. By this we
|
||||
- * mean that we should peek-ahead at the lowest first byte of any range,
|
||||
- * and the highest last byte of any range.
|
||||
- */
|
||||
- if (!APR_BUCKET_IS_EOS(APR_BRIGADE_LAST(bb))) {
|
||||
- ap_save_brigade(f, &ctx->bb, &bb, r->pool);
|
||||
- return APR_SUCCESS;
|
||||
- }
|
||||
-
|
||||
- /* Prepend any earlier saved brigades. */
|
||||
- APR_BRIGADE_PREPEND(bb, ctx->bb);
|
||||
-
|
||||
- /* It is possible that we won't have a content length yet, so we have to
|
||||
- * compute the length before we can actually do the byterange work.
|
||||
- */
|
||||
- apr_brigade_length(bb, 1, &bb_length);
|
||||
- clength = (apr_off_t)bb_length;
|
||||
|
||||
/* this brigade holds what we will be sending */
|
||||
bsend = apr_brigade_create(r->pool, c->bucket_alloc);
|
@ -1,11 +0,0 @@
|
||||
--- modules/ssl/ssl_engine_kernel.c 2005/06/08 09:00:24 189561
|
||||
+++ modules/ssl/ssl_engine_kernel.c 2005/06/08 09:08:09 189562
|
||||
@@ -1398,7 +1398,7 @@
|
||||
BIO_printf(bio, ", nextUpdate: ");
|
||||
ASN1_UTCTIME_print(bio, X509_CRL_get_nextUpdate(crl));
|
||||
|
||||
- n = BIO_read(bio, buff, sizeof(buff));
|
||||
+ n = BIO_read(bio, buff, sizeof(buff) - 1);
|
||||
buff[n] = '\0';
|
||||
|
||||
BIO_free(bio);
|
@ -1,20 +0,0 @@
|
||||
--- server/protocol.c 2005/07/14 16:49:17 219060
|
||||
+++ server/protocol.c 2005/07/14 16:51:55 219061
|
||||
@@ -885,6 +885,15 @@
|
||||
apr_brigade_destroy(tmp_bb);
|
||||
return r;
|
||||
}
|
||||
+
|
||||
+ if (apr_table_get(r->headers_in, "Transfer-Encoding")
|
||||
+ && apr_table_get(r->headers_in, "Content-Length")) {
|
||||
+ /* 2616 section 4.4, point 3: "if both Transfer-Encoding
|
||||
+ * and Content-Length are received, the latter MUST be
|
||||
+ * ignored"; so unset it here to prevent any confusion
|
||||
+ * later. */
|
||||
+ apr_table_unset(r->headers_in, "Content-Length");
|
||||
+ }
|
||||
}
|
||||
else {
|
||||
if (r->header_only) {
|
||||
|
||||
|
@ -1,54 +0,0 @@
|
||||
--- srclib/pcre/pcre.c.orig Wed Nov 24 20:31:09 2004
|
||||
+++ srclib/pcre/pcre.c Thu Aug 25 22:14:56 2005
|
||||
@@ -714,7 +714,18 @@
|
||||
int min = 0;
|
||||
int max = -1;
|
||||
|
||||
+/* Read the minimum value and do a paranoid check: a negative value indicates
|
||||
+an integer overflow. */
|
||||
+
|
||||
while ((cd->ctypes[*p] & ctype_digit) != 0) min = min * 10 + *p++ - '0';
|
||||
+if (min < 0 || min > 65535)
|
||||
+ {
|
||||
+ *errorptr = ERR5;
|
||||
+ return p;
|
||||
+ }
|
||||
+
|
||||
+/* Read the maximum value if there is one, and again do a paranoid on its size.
|
||||
+Also, max must not be less than min. */
|
||||
|
||||
if (*p == '}') max = min; else
|
||||
{
|
||||
@@ -722,6 +733,11 @@
|
||||
{
|
||||
max = 0;
|
||||
while((cd->ctypes[*p] & ctype_digit) != 0) max = max * 10 + *p++ - '0';
|
||||
+ if (max < 0 || max > 65535)
|
||||
+ {
|
||||
+ *errorptr = ERR5;
|
||||
+ return p;
|
||||
+ }
|
||||
if (max < min)
|
||||
{
|
||||
*errorptr = ERR4;
|
||||
@@ -730,16 +746,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
-/* Do paranoid checks, then fill in the required variables, and pass back the
|
||||
-pointer to the terminating '}'. */
|
||||
+/* Fill in the required variables, and pass back the pointer to the terminating
|
||||
+'}'. */
|
||||
|
||||
-if (min > 65535 || max > 65535)
|
||||
- *errorptr = ERR5;
|
||||
-else
|
||||
- {
|
||||
- *minp = min;
|
||||
- *maxp = max;
|
||||
- }
|
||||
+*minp = min;
|
||||
+*maxp = max;
|
||||
return p;
|
||||
}
|
||||
|
@ -1,14 +0,0 @@
|
||||
--- modules/ssl/ssl_engine_kernel.c 2005/08/30 15:54:34 264799
|
||||
+++ modules/ssl/ssl_engine_kernel.c 2005/08/30
|
||||
15:57:38 264800
|
||||
@@ -406,8 +406,8 @@
|
||||
(!(verify_old & SSL_VERIFY_PEER) &&
|
||||
(verify & SSL_VERIFY_PEER)) ||
|
||||
|
||||
- (!(verify_old & SSL_VERIFY_PEER_STRICT) &&
|
||||
- (verify & SSL_VERIFY_PEER_STRICT)))
|
||||
+ (!(verify_old & SSL_VERIFY_FAIL_IF_NO_PEER_CERT) &&
|
||||
+ (verify & SSL_VERIFY_FAIL_IF_NO_PEER_CERT)))
|
||||
{
|
||||
renegotiate = TRUE;
|
||||
/* optimization */
|
@ -1,112 +0,0 @@
|
||||
--- srclib/apr-util/misc/apr_reslist.c.orig Fri Feb 13 04:52:43 2004
|
||||
+++ srclib/apr-util/misc/apr_reslist.c Mon Mar 15 08:21:26 2004
|
||||
@@ -49,6 +49,7 @@
|
||||
int smax; /* soft maximum on the total number of resources */
|
||||
int hmax; /* hard maximum on the total number of resources */
|
||||
apr_interval_time_t ttl; /* TTL when we have too many resources */
|
||||
+ apr_interval_time_t timeout; /* Timeout for waiting on resource */
|
||||
apr_reslist_constructor constructor;
|
||||
apr_reslist_destructor destructor;
|
||||
void *params; /* opaque data passed to constructor and destructor calls */
|
||||
@@ -118,12 +119,9 @@
|
||||
res = apr_pcalloc(reslist->pool, sizeof(*res));
|
||||
|
||||
rv = reslist->constructor(&res->opaque, reslist->params, reslist->pool);
|
||||
- if (rv != APR_SUCCESS) {
|
||||
- return rv;
|
||||
- }
|
||||
|
||||
*ret_res = res;
|
||||
- return APR_SUCCESS;
|
||||
+ return rv;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -132,14 +130,7 @@
|
||||
*/
|
||||
static apr_status_t destroy_resource(apr_reslist_t *reslist, apr_res_t *res)
|
||||
{
|
||||
- apr_status_t rv;
|
||||
-
|
||||
- rv = reslist->destructor(res->opaque, reslist->params, reslist->pool);
|
||||
- if (rv != APR_SUCCESS) {
|
||||
- return rv;
|
||||
- }
|
||||
-
|
||||
- return APR_SUCCESS;
|
||||
+ return reslist->destructor(res->opaque, reslist->params, reslist->pool);
|
||||
}
|
||||
|
||||
static apr_status_t reslist_cleanup(void *data_)
|
||||
@@ -187,6 +178,7 @@
|
||||
/* Create the resource */
|
||||
rv = create_resource(reslist, &res);
|
||||
if (rv != APR_SUCCESS) {
|
||||
+ free_container(reslist, res);
|
||||
apr_thread_mutex_unlock(reslist->listlock);
|
||||
return rv;
|
||||
}
|
||||
@@ -313,7 +305,15 @@
|
||||
* a new one, or something becomes free. */
|
||||
else while (reslist->ntotal >= reslist->hmax
|
||||
&& reslist->nidle <= 0) {
|
||||
- apr_thread_cond_wait(reslist->avail, reslist->listlock);
|
||||
+ if (reslist->timeout) {
|
||||
+ if ((rv = apr_thread_cond_timedwait(reslist->avail,
|
||||
+ reslist->listlock, reslist->timeout)) != APR_SUCCESS) {
|
||||
+ apr_thread_mutex_unlock(reslist->listlock);
|
||||
+ return rv;
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ apr_thread_cond_wait(reslist->avail, reslist->listlock);
|
||||
}
|
||||
/* If we popped out of the loop, first try to see if there
|
||||
* are new resources available for immediate use. */
|
||||
@@ -329,17 +329,13 @@
|
||||
* a resource to fill the slot and use it. */
|
||||
else {
|
||||
rv = create_resource(reslist, &res);
|
||||
-
|
||||
- if (rv != APR_SUCCESS) {
|
||||
- apr_thread_mutex_unlock(reslist->listlock);
|
||||
- return rv;
|
||||
+ if (rv == APR_SUCCESS) {
|
||||
+ reslist->ntotal++;
|
||||
+ *resource = res->opaque;
|
||||
}
|
||||
-
|
||||
- reslist->ntotal++;
|
||||
- *resource = res->opaque;
|
||||
free_container(reslist, res);
|
||||
apr_thread_mutex_unlock(reslist->listlock);
|
||||
- return APR_SUCCESS;
|
||||
+ return rv;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,6 +352,23 @@
|
||||
apr_thread_mutex_unlock(reslist->listlock);
|
||||
|
||||
return reslist_maint(reslist);
|
||||
+}
|
||||
+
|
||||
+APU_DECLARE(void) apr_reslist_timeout_set(apr_reslist_t *reslist,
|
||||
+ apr_interval_time_t timeout)
|
||||
+{
|
||||
+ reslist->timeout = timeout;
|
||||
+}
|
||||
+
|
||||
+APU_DECLARE(apr_status_t) apr_reslist_invalidate(apr_reslist_t *reslist,
|
||||
+ void *resource)
|
||||
+{
|
||||
+ apr_status_t ret;
|
||||
+ apr_thread_mutex_lock(reslist->listlock);
|
||||
+ ret = reslist->destructor(resource, reslist->params, reslist->pool);
|
||||
+ reslist->ntotal--;
|
||||
+ apr_thread_mutex_unlock(reslist->listlock);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
#endif /* APR_HAS_THREADS */
|
||||
|
@ -269,7 +269,6 @@ share/apache2/build/special.mk
|
||||
%%ERROR%%www/error-dist/HTTP_INTERNAL_SERVER_ERROR.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_LENGTH_REQUIRED.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_METHOD_NOT_ALLOWED.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_NOT_ACCEPTABLE.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_NOT_FOUND.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_NOT_IMPLEMENTED.html.var
|
||||
%%ERROR%%www/error-dist/HTTP_PRECONDITION_FAILED.html.var
|
||||
|
Loading…
Reference in New Issue
Block a user