]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: log: junk at the end of syslog packet
authorWilliam Lallemand <wlallemand@exceliance.fr>
Fri, 30 Aug 2013 12:17:46 +0000 (14:17 +0200)
committerWilly Tarreau <w@1wt.eu>
Sat, 31 Aug 2013 06:02:09 +0000 (08:02 +0200)
With a facily of 2 or 1 digit, the send size was wrong and bytes with
unknown value were sent.
The size was calculated using the start of the buffer and not the start
of the data which varies with the number of digits of the facility.

This bug was reported by Samuel Stoller and reported by Lukas Tribus.

src/log.c

index f1fe40c82d403a0d0ce142e776924e9e927326b8..ae6f0a3388c0ef2ead9e8a5547a1c465149190cf 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -847,7 +847,7 @@ void __send_log(struct proxy *p, int level, char *message, size_t size)
                } while (fac_level && log_ptr > dataptr);
                *log_ptr = '<';
 
-               sent = sendto(*plogfd, log_ptr, size + log_ptr - dataptr,
+               sent = sendto(*plogfd, log_ptr, size - (log_ptr - dataptr),
                              MSG_DONTWAIT | MSG_NOSIGNAL,
                              (struct sockaddr *)&logsrv->addr, get_addr_len(&logsrv->addr));
                if (sent < 0) {