diff options
author | 2024-12-03 13:12:21 +0000 | |
---|---|---|
committer | 2024-12-08 18:57:56 +0000 | |
commit | a5e5f715f0e579b36d2b91e16de704ee41e2481c (patch) | |
tree | b8fe848f31ab0700f37d682d7166f701fc98b9c2 /app-admin/syslog-ng/files | |
parent | x11-libs/pixman: Stabilize 0.44.2 arm64, #946117 (diff) | |
download | gentoo-a5e5f715f0e579b36d2b91e16de704ee41e2481c.tar.gz gentoo-a5e5f715f0e579b36d2b91e16de704ee41e2481c.tar.bz2 gentoo-a5e5f715f0e579b36d2b91e16de704ee41e2481c.zip |
app-admin/syslog-ng: fix python byte compile, stop spurious kmsg logs
Patch taken from:
https://github.com/syslog-ng/syslog-ng/pull/5168
https://github.com/syslog-ng/syslog-ng/issues/5159
Closes: https://bugs.gentoo.org/945490
Closes: https://bugs.gentoo.org/914968
Signed-off-by: Tomáš Mózes <hydrapolic@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/39576
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-admin/syslog-ng/files')
-rw-r--r-- | app-admin/syslog-ng/files/syslog-ng-4.8.1-kmsg-invalid-argument.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/app-admin/syslog-ng/files/syslog-ng-4.8.1-kmsg-invalid-argument.patch b/app-admin/syslog-ng/files/syslog-ng-4.8.1-kmsg-invalid-argument.patch new file mode 100644 index 000000000000..75803d112de7 --- /dev/null +++ b/app-admin/syslog-ng/files/syslog-ng-4.8.1-kmsg-invalid-argument.patch @@ -0,0 +1,53 @@ +From 2cd1f3abaf077aa0f14de967db55993c06bdad06 Mon Sep 17 00:00:00 2001 +From: Hofi <hofione@gmail.com> +Date: Fri, 8 Nov 2024 15:46:00 +0100 +Subject: [PATCH] file-reader: added a more detailed, direct check if seek can + be called on the file descriptor + +Signed-off-by: Hofi <hofione@gmail.com> +--- + modules/affile/file-reader.c | 22 +++++++++++++++++++--- + 1 file changed, 19 insertions(+), 3 deletions(-) + +diff --git a/modules/affile/file-reader.c b/modules/affile/file-reader.c +index 712bac5c91..203c2086d3 100644 +--- a/modules/affile/file-reader.c ++++ b/modules/affile/file-reader.c +@@ -163,10 +163,26 @@ _recover_state(LogPipe *s, GlobalConfig *cfg, LogProtoServer *proto) + } + + static gboolean +-_can_check_eof(gint fd) ++_can_check_eof(FileReader *self, gint fd) + { + struct stat st; +- return fstat(fd, &st) == 0 && S_ISFIFO(st.st_mode) == 0; ++ ++ if (fstat(fd, &st) == -1 || S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode) || S_ISCHR(st.st_mode)) ++ return FALSE; ++ ++ off_t pos = lseek(fd, 0, SEEK_CUR); ++ if (pos == -1) ++ return FALSE; ++ ++ off_t reset = lseek(fd, pos, SEEK_SET); ++ if (reset != pos) ++ { ++ msg_trace("File seek pos is different after testing if seekable", ++ evt_tag_str("follow_filename", self->filename->str), ++ evt_tag_int("fn", fd)); ++ } ++ ++ return TRUE; + } + + static gboolean +@@ -263,7 +279,7 @@ _construct_poll_events(FileReader *self, gint fd) + return NULL; + } + +- if (_can_check_eof(fd)) ++ if (_can_check_eof(self, fd)) + poll_events_set_checker(poll_events, _reader_check_watches, self); + + return poll_events; |