]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: log/encode: consider global options for key encoding
authorAurelien DARRAGON <adarragon@haproxy.com>
Mon, 29 Apr 2024 13:31:17 +0000 (15:31 +0200)
committerAurelien DARRAGON <adarragon@haproxy.com>
Tue, 30 Apr 2024 08:10:35 +0000 (10:10 +0200)
In sess_build_logline(), contrary to what's stated in the comment
"only consider global ctx for key encoding", we check for
LOG_OPT_ENCODE flag on the current ctx options instead of global
ones. Because of this, we could end up doing the wrong thing if the
previous node had encoding enabled but it isn't set globally for
instance.

To fix the issue, let's simply check the presence of the flag on
g_options before entering the "key encoding" block.

This bug was introduced with 3f7c8387 ("MINOR: log: add +json encoding
option"), no backport needed.

src/log.c

index 2cde788313449a41a226bb416f5dfd8247d3667d..31295d28888de90768965064712376b5f4ec65cb 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -3635,7 +3635,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
                struct sample *key;
                const struct buffer empty = { };
 
-               if (ctx.options & LOG_OPT_ENCODE) {
+               if (g_options & LOG_OPT_ENCODE) {
                        /* only consider global ctx for key encoding */
                        lf_buildctx_prepare(&ctx, g_options, NULL);