From: Christophe Jaillet Date: Tue, 15 Jul 2014 19:09:06 +0000 (+0000) Subject: fix logic in ap_method_list_(add|remove) in order: X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c02c1efb2643112ed4b7f4e664fa7d639e089a51;p=thirdparty%2Fapache%2Fhttpd.git fix logic in ap_method_list_(add|remove) in order: - to correctly reset bits - not to modify the 'method_mask' bitfield unnecessarily Also remove a useless 'register' in the declaration of a variable. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1610813 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index ee54b061744..d1b782f47cc 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,10 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) http_protocol: fix logic in ap_method_list_(add|remove) in order: + - to correctly reset bits + - not to modify the 'method_mask' bitfield unnecessarily + *) mod_log_config: Allow three character log formats to be registered. For backwards compatibility, the first character of a three-character format must be the '^' (caret) character. [Eric Covener] diff --git a/modules/http/http_protocol.c b/modules/http/http_protocol.c index fe2cc208798..a7f30fcf98c 100644 --- a/modules/http/http_protocol.c +++ b/modules/http/http_protocol.c @@ -1608,8 +1608,8 @@ AP_DECLARE(void) ap_method_list_add(ap_method_list_t *l, const char *method) * bitmask. */ methnum = ap_method_number_of(method); - l->method_mask |= (AP_METHOD_BIT << methnum); if (methnum != M_INVALID) { + l->method_mask |= (AP_METHOD_BIT << methnum); return; } /* @@ -1641,15 +1641,15 @@ AP_DECLARE(void) ap_method_list_remove(ap_method_list_t *l, * by a module, use the bitmask. */ methnum = ap_method_number_of(method); - l->method_mask |= ~(AP_METHOD_BIT << methnum); if (methnum != M_INVALID) { + l->method_mask &= ~(AP_METHOD_BIT << methnum); return; } /* * Otherwise, see if the method name is in the array of string names. */ if (l->method_list->nelts != 0) { - register int i, j, k; + int i, j, k; methods = (char **)l->method_list->elts; for (i = 0; i < l->method_list->nelts; ) { if (strcmp(method, methods[i]) == 0) {