summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomáš Mózes <hydrapolic@gmail.com>2024-12-03 13:12:21 +0000
committerSam James <sam@gentoo.org>2024-12-08 18:57:56 +0000
commita5e5f715f0e579b36d2b91e16de704ee41e2481c (patch)
treeb8fe848f31ab0700f37d682d7166f701fc98b9c2 /app-admin/syslog-ng/files
parentx11-libs/pixman: Stabilize 0.44.2 arm64, #946117 (diff)
downloadgentoo-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.patch53
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;