!7 openEuler-cronie

Merge pull request !7 from Liquor/liquor
This commit is contained in:
openeuler-ci-bot 2020-07-24 11:50:05 +08:00 committed by Gitee
commit 0acdfc6224
9 changed files with 192 additions and 35 deletions

View File

@ -0,0 +1,31 @@
From 05f5f1834d31e4d9480b59d4e8bd3e999a62fa40 Mon Sep 17 00:00:00 2001
From: John Horne <john.horne@plymouth.ac.uk>
Date: Mon, 20 Apr 2020 16:02:31 +0100
Subject: [PATCH] Add CMDEND log entry to log when cron jobs end.
---
src/do_command.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/do_command.c b/src/do_command.c
index ed56775..dda8ff7 100644
--- a/src/do_command.c
+++ b/src/do_command.c
@@ -581,6 +581,14 @@ static int child_process(entry * e, char **jobenv) {
Debug(DPROC,
("[%ld] no more grandchildren--mail written?\n",
(long) getpid()));
+
+ if ((e->flags & DONT_LOG) == 0) {
+ char *x = mkprints((u_char *) e->cmd, strlen(e->cmd));
+
+ log_it(usernm, getpid(), "CMDEND", x, 0);
+ free(x);
+ }
+
break;
}
Debug(DPROC, ("[%ld] grandchild #%ld finished, status=%04x",
--
1.8.3.1

View File

@ -0,0 +1,25 @@
From 59063efa62fbb75bb75ad34a9e9c551b77284377 Mon Sep 17 00:00:00 2001
From: John Horne <john.horne@plymouth.ac.uk>
Date: Mon, 20 Apr 2020 20:16:29 +0100
Subject: [PATCH] Ensure the command name is not null before logging it.
---
src/do_command.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/do_command.c b/src/do_command.c
index 76939a1..d1594c6 100644
--- a/src/do_command.c
+++ b/src/do_command.c
@@ -592,7 +592,7 @@ static int child_process(entry * e, char **jobenv) {
if ((e->flags & DONT_LOG) == 0) {
char *x = mkprints((u_char *) e->cmd, strlen(e->cmd));
- log_it(usernm, getpid(), "CMDEND", x, 0);
+ log_it(usernm, getpid(), "CMDEND", x ? x : "Unknown command" , 0);
free(x);
}
return OK_EXIT;
--
1.8.3.1

View File

@ -0,0 +1,46 @@
From 22ae88868f48090e2a5ad4b9bb165581df91511f Mon Sep 17 00:00:00 2001
From: Josef Schlehofer <pepe.schlehofer@gmail.com>
Date: Sun, 24 Nov 2019 17:22:49 +0100
Subject: [PATCH] Fix incorrect include of fcntl.h
---
configure.ac | 1 -
src/cron.c | 5 +----
2 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
index bffe9ad..5493261 100644
--- a/configure.ac
+++ b/configure.ac
@@ -38,7 +38,6 @@ AC_CHECK_HEADERS( \
sys/timers.h \
sys/types.h \
sys/cdefs.h \
- sys/fcntl.h \
time.h \
unistd.h \
util.h \
diff --git a/src/cron.c b/src/cron.c
index 7eabfe9..40e1e76 100644
--- a/src/cron.c
+++ b/src/cron.c
@@ -40,15 +40,12 @@
#include <sys/wait.h>
#include <unistd.h>
#include <sys/time.h>
+#include <fcntl.h>
#ifdef WITH_INOTIFY
# include <sys/inotify.h>
#endif
-#ifdef HAVE_SYS_FCNTL_H
-# include <sys/fcntl.h>
-#endif
-
#include "cronie_common.h"
#include "funcs.h"
#include "globals.h"
--
1.8.3.1

View File

@ -0,0 +1,35 @@
From 654b85488b128aab5baf8feee71f38b763425d56 Mon Sep 17 00:00:00 2001
From: Tomas Mraz <tmraz@fedoraproject.org>
Date: Tue, 21 Apr 2020 09:30:03 +0200
Subject: [PATCH] Handle out-of-memory condition from mkprints() call
---
src/do_command.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/do_command.c b/src/do_command.c
index d1594c6..b4f1d18 100644
--- a/src/do_command.c
+++ b/src/do_command.c
@@ -194,6 +194,9 @@ static int child_process(entry * e, char **jobenv) {
if ((e->flags & DONT_LOG) == 0) {
char *x = mkprints((u_char *) e->cmd, strlen(e->cmd));
+ if (x == NULL) /* out of memory, better exit */
+ _exit(ERROR_EXIT);
+
log_it(usernm, getpid(), "CMD", x, 0);
free(x);
}
@@ -592,7 +595,7 @@ static int child_process(entry * e, char **jobenv) {
if ((e->flags & DONT_LOG) == 0) {
char *x = mkprints((u_char *) e->cmd, strlen(e->cmd));
- log_it(usernm, getpid(), "CMDEND", x ? x : "Unknown command" , 0);
+ log_it(usernm, getpid(), "CMDEND", x ? x : "**Unknown command**" , 0);
free(x);
}
return OK_EXIT;
--
1.8.3.1

View File

@ -0,0 +1,44 @@
From 79d403e34e8a65b7f4c21f0dcb31fcc9c6fabc7d Mon Sep 17 00:00:00 2001
From: John Horne <john.horne@plymouth.ac.uk>
Date: Mon, 20 Apr 2020 16:59:53 +0100
Subject: [PATCH] Moved CMDEND code to outside for for loop.
---
src/do_command.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/do_command.c b/src/do_command.c
index dda8ff7..76939a1 100644
--- a/src/do_command.c
+++ b/src/do_command.c
@@ -581,14 +581,6 @@ static int child_process(entry * e, char **jobenv) {
Debug(DPROC,
("[%ld] no more grandchildren--mail written?\n",
(long) getpid()));
-
- if ((e->flags & DONT_LOG) == 0) {
- char *x = mkprints((u_char *) e->cmd, strlen(e->cmd));
-
- log_it(usernm, getpid(), "CMDEND", x, 0);
- free(x);
- }
-
break;
}
Debug(DPROC, ("[%ld] grandchild #%ld finished, status=%04x",
@@ -597,6 +589,12 @@ static int child_process(entry * e, char **jobenv) {
Debug(DPROC, (", dumped core"));
Debug(DPROC, ("\n"));
}
+ if ((e->flags & DONT_LOG) == 0) {
+ char *x = mkprints((u_char *) e->cmd, strlen(e->cmd));
+
+ log_it(usernm, getpid(), "CMDEND", x, 0);
+ free(x);
+ }
return OK_EXIT;
}
--
1.8.3.1

View File

@ -1,30 +0,0 @@
From 04d556ba1f3c18508c51231fa12a6d8f0bddf36c Mon Sep 17 00:00:00 2001
From: root <root@localhost.localdomain>
Date: Tue, 23 Jul 2019 07:54:07 -0400
Subject: [PATCH] Revert "Avoid creating pid files when crond doesn't fork"
Reason: The PID file is useful to avoid running multiple crond instances
at once.
Source: https://github.com/cronie-crond/cronie/commit/0570c2cd979bc9ce1da6a873089e89dbca900a1f
Signed-off-by: root <root@localhost.localdomain>
---
src/misc.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/misc.c b/src/misc.c
index 4efab64..587c761 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -315,9 +315,6 @@ void acquire_daemonlock(int closeflag) {
return;
}
- if (NoFork == 1)
- return; //move along, nothing to do here...
-
if (fd == -1) {
pidfile = _PATH_CRON_PID;
/* Initial mode is 0600 to prevent flock() race/DoS. */
--
2.19.1

Binary file not shown.

BIN
cronie-1.5.5.tar.gz Normal file

Binary file not shown.

View File

@ -1,15 +1,18 @@
Name: cronie Name: cronie
Version: 1.5.4 Version: 1.5.5
Release: 5 Release: 1
Summary: Standard UNIX daemon crond Summary: Standard UNIX daemon crond
License: GPLv2+ and ISC License: GPLv2+ and ISC
URL: https://github.com/cronie-crond/cronie URL: https://github.com/cronie-crond/cronie
Source0: https://github.com/cronie-crond/cronie/releases/download/cronie-%{version}-final/cronie-%{version}.tar.gz Source0: https://github.com/cronie-crond/cronie/releases/download/cronie-%{version}-final/cronie-%{version}.tar.gz
Patch6000: Revert-Avoid-creating-pid-files.patch
Patch9000: bugfix-cronie-systemd-alias.patch
Patch0: bugfix-cronie-systemd-alias.patch
Patch1: Fix-incorrect-include-of-fcntl.h.patch
Patch2: Add-CMDEND-log-entry-to-log-when-cron-jobs-end.patch
Patch3: Moved-CMDEND-code-to-outside-for-for-loop.patch
Patch4: Ensure-the-command-name-is-not-null-before-logging-i.patch
Patch5: Handle-out-of-memory-condition-from-mkprints-call.patch
BuildRequires: gcc systemd libselinux-devel pam-devel audit-libs-devel git BuildRequires: gcc systemd libselinux-devel pam-devel audit-libs-devel git
@ -119,6 +122,9 @@ systemctl try-restart crond.service >/dev/null 2>&1 || :
%changelog %changelog
* Thu Jul 23 2020 Liquor <lirui130@huawei.com> - 1.5.5-1
- update to 1.5.5
* Sat Mar 21 2020 openEuler Buildteam <buildteam@openeuler.org> - 1.5.4-5 * Sat Mar 21 2020 openEuler Buildteam <buildteam@openeuler.org> - 1.5.4-5
- Type:bugfix - Type:bugfix
- ID:NA - ID:NA