File 0001-Merge-pull-request-5437-from-HofiOne-fix-ack-tracker.patch of Package syslog-ng

From 38ac0e645b845d46201944a28829c84539fae983 Mon Sep 17 00:00:00 2001
From: Hofi <hofione@gmail.com>
Date: Fri, 22 Aug 2025 10:27:38 +0200
Subject: [PATCH 1/4] Merge pull request #5437 from
 HofiOne/fix-ack-tracker-crash

Fix ack tracker crash

(cherry picked from commit 5b64de97b4c4bd91956558a175fcfe668a68d6aa)
---
 lib/ack-tracker/consecutive_ack_tracker.c | 16 +++++++---------
 modules/affile/file-reader.c              |  7 ++++++-
 modules/affile/wildcard-source.c          |  4 ++++
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/lib/ack-tracker/consecutive_ack_tracker.c b/lib/ack-tracker/consecutive_ack_tracker.c
index e99fb1d2c..abc154d4b 100644
--- a/lib/ack-tracker/consecutive_ack_tracker.c
+++ b/lib/ack-tracker/consecutive_ack_tracker.c
@@ -95,12 +95,11 @@ consecutive_ack_tracker_track_msg(AckTracker *s, LogMessage *msg)
   ConsecutiveAckTracker *self = (ConsecutiveAckTracker *)s;
   LogSource *source = self->super.source;
 
-  g_assert(self->pending_ack_record != NULL);
-
   log_pipe_ref((LogPipe *)source);
 
   consecutive_ack_tracker_lock(s);
   {
+    g_assert(self->pending_ack_record != NULL);
     _ack_records_track_msg(self, msg);
   }
   consecutive_ack_tracker_unlock(s);
@@ -178,13 +177,11 @@ static Bookmark *
 consecutive_ack_tracker_request_bookmark(AckTracker *s)
 {
   ConsecutiveAckTracker *self = (ConsecutiveAckTracker *)s;
+  Bookmark *bookmark = NULL;
 
+  consecutive_ack_tracker_lock(s);
   if (!self->pending_ack_record)
-    {
-      consecutive_ack_tracker_lock(s);
-      self->pending_ack_record = consecutive_ack_record_container_request_pending(self->ack_records);
-      consecutive_ack_tracker_unlock(s);
-    }
+    self->pending_ack_record = consecutive_ack_record_container_request_pending(self->ack_records);
 
   if (self->pending_ack_record)
     {
@@ -192,10 +189,11 @@ consecutive_ack_tracker_request_bookmark(AckTracker *s)
 
       self->pending_ack_record->super.tracker = (AckTracker *)self;
 
-      return &(self->pending_ack_record->super.bookmark);
+      bookmark = &(self->pending_ack_record->super.bookmark);
     }
+  consecutive_ack_tracker_unlock(s);
 
-  return NULL;
+  return bookmark;
 }
 
 static void
diff --git a/modules/affile/file-reader.c b/modules/affile/file-reader.c
index fd5fd166c..016c0f652 100644
--- a/modules/affile/file-reader.c
+++ b/modules/affile/file-reader.c
@@ -512,11 +512,14 @@ _on_file_deleted(FileReader *self)
     log_reader_trigger_one_check(self->reader);
 }
 
+#if SYSLOG_NG_HAVE_INOTIFY
 static inline void
 _on_file_modified(FileReader *self)
 {
-  log_reader_trigger_one_check(self->reader);
+  if (self->options->follow_method == FM_INOTIFY)
+    log_reader_trigger_one_check(self->reader);
 }
+#endif
 
 static void
 _on_read_error(FileReader *self)
@@ -549,10 +552,12 @@ file_reader_notify_method(LogPipe *s, gint notify_code, gpointer user_data)
       _on_file_deleted(self);
       break;
 
+#if SYSLOG_NG_HAVE_INOTIFY
     case NC_FILE_MODIFIED:
       /* This is a notification from the directory monitor, we can read the file for changes */
       _on_file_modified(self);
       break;
+#endif
 
     default:
       break;
diff --git a/modules/affile/wildcard-source.c b/modules/affile/wildcard-source.c
index 3545d4f4a..7cdf2814b 100644
--- a/modules/affile/wildcard-source.c
+++ b/modules/affile/wildcard-source.c
@@ -223,6 +223,7 @@ _handler_directory_deleted(WildcardSourceDriver *self, const DirectoryMonitorEve
     }
 }
 
+#if SYSLOG_NG_HAVE_INOTIFY
 static void
 _handler_file_modified(WildcardSourceDriver *self, const DirectoryMonitorEvent *event)
 {
@@ -231,6 +232,7 @@ _handler_file_modified(WildcardSourceDriver *self, const DirectoryMonitorEvent *
   if (reader)
     log_pipe_notify(&reader->super.super, NC_FILE_MODIFIED, NULL);
 }
+#endif
 
 static void
 _on_directory_monitor_changed(const DirectoryMonitorEvent *event, gpointer user_data)
@@ -255,10 +257,12 @@ _on_directory_monitor_changed(const DirectoryMonitorEvent *event, gpointer user_
     {
       _handler_directory_deleted(self, event);
     }
+#if SYSLOG_NG_HAVE_INOTIFY
   else if (event->event_type == FILE_MODIFIED)
     {
       _handler_file_modified(self, event);
     }
+#endif
 }
 
 
-- 
2.51.0

openSUSE Build Service is sponsored by