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 2affac3..f0db0a8 100644
--- a/src/log.c
+++ b/src/log.c
@@ -1535,7 +1535,7 @@
case LOG_FMT_HTTP_PATH: // %HP
uri = txn->uri ? txn->uri : "<BADREQ>";
- if (tmp->options && LOG_OPT_QUOTE)
+ if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
end = uri + strlen(uri);
@@ -1566,7 +1566,7 @@
goto out;
tmplog = ret;
- if (tmp->options && LOG_OPT_QUOTE)
+ if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
last_isspace = 0;
@@ -1575,7 +1575,7 @@
case LOG_FMT_HTTP_URI: // %HU
uri = txn->uri ? txn->uri : "<BADREQ>";
- if (tmp->options && LOG_OPT_QUOTE)
+ if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
end = uri + strlen(uri);
@@ -1606,7 +1606,7 @@
goto out;
tmplog = ret;
- if (tmp->options && LOG_OPT_QUOTE)
+ if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
last_isspace = 0;
@@ -1614,7 +1614,7 @@
case LOG_FMT_HTTP_METHOD: // %HM
uri = txn->uri ? txn->uri : "<BADREQ>";
- if (tmp->options && LOG_OPT_QUOTE)
+ if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
end = uri + strlen(uri);
@@ -1636,7 +1636,7 @@
goto out;
tmplog = ret;
- if (tmp->options && LOG_OPT_QUOTE)
+ if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
last_isspace = 0;
@@ -1644,7 +1644,7 @@
case LOG_FMT_HTTP_VERSION: // %HV
uri = txn->uri ? txn->uri : "<BADREQ>";
- if (tmp->options && LOG_OPT_QUOTE)
+ if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
end = uri + strlen(uri);
@@ -1681,7 +1681,7 @@
goto out;
tmplog = ret;
- if (tmp->options && LOG_OPT_QUOTE)
+ if (tmp->options & LOG_OPT_QUOTE)
LOGCHAR('"');
last_isspace = 0;