diff options
author | Alan Somers <asomers@FreeBSD.org> | 2021-11-30 17:06:25 +0000 |
---|---|---|
committer | Alan Somers <asomers@FreeBSD.org> | 2021-11-30 18:11:43 +0000 |
commit | 943c446629e33739d3f72795069a5c944e8f329e (patch) | |
tree | 39cbe4eac3d3a81f91ad877571efcd6ed2daf1e3 /release | |
parent | 10041e99a0c29c9f99c4148fc173bb12dd26aa8d (diff) | |
download | src-943c446629e33739d3f72795069a5c944e8f329e.tar.gz src-943c446629e33739d3f72795069a5c944e8f329e.zip |
Revert "libc: Some enhancements to syslog(3)"
This reverts commit 2886c93d1bca231260ebc01d4205743ca781f3c7.
The original commit has two problems:
* It sets SO_SNDBUF to be as large as MAXLINE. But for unix domain
sockets, the send buffer is bypassed. Packets go directly to the
peer's receive buffer, so setting and querying SO_SNDBUF is
ineffective. To ensure that the socket can accept messages of a
certain size, it would be necessary to add a SO_PEERRCVBUF socket
option that could query the connected peer's receive buffer size.
* It sets MAXLINE to 8 kB, which is larger than the default sockbuf size
of 4 kB. That's ok for the builtin syslogd, which sets its recvbuf
to 80 kB, but not ok for alternative sysloggers, like rsyslogd, which
use the default size.
As a consequence, writing messages of more than 4 kB with syslog() as a
non-root user while running rsyslogd would cause the logging application
to spin indefinitely within syslog().
PR: 260126
MFC: 2 weeks
Sponsored by: Axcient
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D33199
Diffstat (limited to 'release')
0 files changed, 0 insertions, 0 deletions