diff --git a/coreutils.spec b/coreutils.spec index 12c9dc40a61bece08e93acd5d74e4562a510bb59..410c380e35cdacd909eba38c14e0d5b74eead961 100644 --- a/coreutils.spec +++ b/coreutils.spec @@ -1,6 +1,6 @@ Name: coreutils Version: 9.4 -Release: 5 +Release: 6 License: GPLv3+ Summary: A set of basic GNU tools commonly used in shell scripts Url: https://www.gnu.org/software/coreutils/ @@ -27,6 +27,7 @@ patch12: backport-sort-don-t-trust-st_size-on-proc-files.patch patch13: backport-cat-don-t-trust-st_size-on-proc-files.patch patch14: backport-dd-don-t-trust-st_size-on-proc-files.patch patch15: backport-split-don-t-trust-st_size-on-proc-files.patch +patch16: fix-coredump-if-enable-systemd.patch %ifarch sw_64 Patch9001: coreutils-9.0-sw.patch @@ -162,6 +163,9 @@ fi %{_mandir}/man*/* %changelog +* Mon Jun 24 2024 huyubiao - 9.4-6 +- fix coredump if enable systemd + * Wed May 22 2024 liuh - 9.4-5 - backport patches from community diff --git a/fix-coredump-if-enable-systemd.patch b/fix-coredump-if-enable-systemd.patch new file mode 100644 index 0000000000000000000000000000000000000000..e2a423ae6e39d0e7c9538c15ab401d3ceeb31e93 --- /dev/null +++ b/fix-coredump-if-enable-systemd.patch @@ -0,0 +1,35 @@ +From d501347a8ae23a2fb312949c588c7565eb54b2da Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Mon, 18 Mar 2024 09:10:31 +0800 +Subject: [PATCH] fix core dump if --enable-systemd + +From gnulib upstream commits: +* 1e6a26f9312bb47e070f94b17b14dc1a6ffbb74f ("readutmp: fix core dump if --enable-systemd") +Problem reported by Thorsten Kukuk . +lib/readutmp.c (read_utmp_from_systemd): +Don’t assume session_ptr != NULL if num_sessions == 0. +In practice it can be null, and the man page OKs this behavior. + +* 3af1d7b0ce3a8e3ae565e7cea10cee6fd7cb8109 ("readutmp: Fix memory leak introduced by last commit.") +lib/readutmp.c (read_utmp_from_systemd): If num_sessions == 0 and +sessions != NULL, do call free (sessions). +--- + lib/readutmp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/readutmp.c b/lib/readutmp.c +index 0173b7e..ec09feb 100644 +--- a/lib/readutmp.c ++++ b/lib/readutmp.c +@@ -795,7 +795,7 @@ read_utmp_from_systemd (idx_t *n_entries, STRUCT_UTMP **utmp_buf, int options) + { + char **sessions; + int num_sessions = sd_get_sessions (&sessions); +- if (num_sessions >= 0) ++ if (num_sessions >= 0 && sessions != NULL) + { + char **session_ptr; + for (session_ptr = sessions; *session_ptr != NULL; session_ptr++) +-- +2.41.0 +