From: Willy Tarreau Date: Wed, 17 Jun 2015 17:58:02 +0000 (+0200) Subject: BUG/MEDIUM: logs: fix improper systematic use of quotes with a few tags X-Git-Tag: v1.6-dev3~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b7636d1a100419b3e88f7de4b2eea32f8351eb73;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: logs: fix improper systematic use of quotes with a few tags Dmitry Sivachenko reported the following build warning using Clang, which is a real bug : src/log.c:1538:22: warning: use of logical '&&' with constant operand [-Wconstant-logical-operand] if (tmp->options && LOG_OPT_QUOTE) ^ ~~~~~~~~~~~~~ The effect is that recent log tags related to HTTP method, path, uri, query have a bug making them always use quotes. This bug was introduced in 1.6-dev2 with commit 0ebc55f ("MEDIUM: logs: Add HTTP request-line log format directives"), so no backport is needed. --- diff --git a/src/log.c b/src/log.c index 2affac3881..f0db0a8291 100644 --- a/src/log.c +++ b/src/log.c @@ -1535,7 +1535,7 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list case LOG_FMT_HTTP_PATH: // %HP uri = txn->uri ? txn->uri : ""; - if (tmp->options && LOG_OPT_QUOTE) + if (tmp->options & LOG_OPT_QUOTE) LOGCHAR('"'); end = uri + strlen(uri); @@ -1566,7 +1566,7 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list goto out; tmplog = ret; - if (tmp->options && LOG_OPT_QUOTE) + if (tmp->options & LOG_OPT_QUOTE) LOGCHAR('"'); last_isspace = 0; @@ -1575,7 +1575,7 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list case LOG_FMT_HTTP_URI: // %HU uri = txn->uri ? txn->uri : ""; - if (tmp->options && LOG_OPT_QUOTE) + if (tmp->options & LOG_OPT_QUOTE) LOGCHAR('"'); end = uri + strlen(uri); @@ -1606,7 +1606,7 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list goto out; tmplog = ret; - if (tmp->options && LOG_OPT_QUOTE) + if (tmp->options & LOG_OPT_QUOTE) LOGCHAR('"'); last_isspace = 0; @@ -1614,7 +1614,7 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list case LOG_FMT_HTTP_METHOD: // %HM uri = txn->uri ? txn->uri : ""; - if (tmp->options && LOG_OPT_QUOTE) + if (tmp->options & LOG_OPT_QUOTE) LOGCHAR('"'); end = uri + strlen(uri); @@ -1636,7 +1636,7 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list goto out; tmplog = ret; - if (tmp->options && LOG_OPT_QUOTE) + if (tmp->options & LOG_OPT_QUOTE) LOGCHAR('"'); last_isspace = 0; @@ -1644,7 +1644,7 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list case LOG_FMT_HTTP_VERSION: // %HV uri = txn->uri ? txn->uri : ""; - if (tmp->options && LOG_OPT_QUOTE) + if (tmp->options & LOG_OPT_QUOTE) LOGCHAR('"'); end = uri + strlen(uri); @@ -1681,7 +1681,7 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list goto out; tmplog = ret; - if (tmp->options && LOG_OPT_QUOTE) + if (tmp->options & LOG_OPT_QUOTE) LOGCHAR('"'); last_isspace = 0;