blob: ca899fd0da398e8ec5bcf739c2e31439c9cc422c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
From ce3339d28623b8bb771e5e0aa139168df5963c4b Mon Sep 17 00:00:00 2001
From: Andreas Rogge <andreas.rogge@bareos.com>
Date: Wed, 2 Feb 2022 19:41:25 +0100
Subject: [PATCH] lib: fix use-after-free in timer_thread
---
core/src/lib/timer_thread.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/core/src/lib/timer_thread.cc b/core/src/lib/timer_thread.cc
index 7ec8021989..1624ddd4f0 100644
--- a/core/src/lib/timer_thread.cc
+++ b/core/src/lib/timer_thread.cc
@@ -2,7 +2,7 @@
BAREOS® - Backup Archiving REcovery Open Sourced
Copyright (C) 2002-2011 Free Software Foundation Europe e.V.
- Copyright (C) 2019-2019 Bareos GmbH & Co. KG
+ Copyright (C) 2019-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -204,6 +204,7 @@ static bool RunOneItem(TimerThread::Timer* p,
= std::chrono::steady_clock::now();
bool remove_from_list = false;
+ next_timer_run = min(p->scheduled_run_timepoint, next_timer_run);
if (p->is_active && last_timer_run_timepoint > p->scheduled_run_timepoint) {
LogMessage(p);
p->user_callback(p);
@@ -215,7 +216,6 @@ static bool RunOneItem(TimerThread::Timer* p,
p->scheduled_run_timepoint = last_timer_run_timepoint + p->interval;
}
}
- next_timer_run = min(p->scheduled_run_timepoint, next_timer_run);
return remove_from_list;
}
|