From 7faffdc6abc662470a4706f6c5af7c9c3a8764fb Mon Sep 17 00:00:00 2001 From: Aurelien DARRAGON Date: Wed, 26 Oct 2022 23:40:08 +0200 Subject: [PATCH] BUG/MINOR: log: fixing bug in tcp syslog_io_handler Octet-Counting syslog_io_handler does specific treatment to handle syslog tcp octet counting: Logic was good, but a sneaky mistake prevented rfc-6587 octet counting from working properly. trash.area was used as an input buffer. It does not make sense here since it is uninitialized. Compilation was unaffected because trash is a thread local "global" variable. buf->area should definitely be used instead. This should be backported as far as 2.4. --- src/log.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/log.c b/src/log.c index b3865e99e..5be654c9f 100644 --- a/src/log.c +++ b/src/log.c @@ -3626,7 +3626,7 @@ static void syslog_io_handler(struct appctx *appctx) if (buf->area[to_skip - 1] != ' ') goto parse_error; - msglen = strtol(trash.area, &p, 10); + msglen = strtol(buf->area, &p, 10); if (!msglen || p != &buf->area[to_skip - 1]) goto parse_error;