Accepting request 1111796 from home:berny:branches:Base:System

- gnulib-readutmp-under-gdm.patch: Add upstream gnulib patch to fix crash
  of who/uptime when gdm is in use. [bsc#1215361]
- gnulib-readutmp.patch: Update with upstream patch.

OBS-URL: https://build.opensuse.org/request/show/1111796
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=354
This commit is contained in:
Bernhard Voelker 2023-09-20 07:05:48 +00:00 committed by Git OBS Bridge
parent ca11210de3
commit b027767dc6
4 changed files with 78 additions and 2 deletions

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Sun Sep 17 16:15:24 UTC 2023 - Bernhard Voelker <mail@bernhard-voelker.de>
- gnulib-readutmp-under-gdm.patch: Add upstream gnulib patch to fix crash
of who/uptime when gdm is in use. [bsc#1215361]
- gnulib-readutmp.patch: Update with upstream patch.
-------------------------------------------------------------------
Thu Aug 31 09:56:48 UTC 2023 - Thorsten Kukuk <kukuk@suse.com>

View File

@ -50,9 +50,12 @@ Patch100: coreutils-build-timeout-as-pie.patch
Patch112: coreutils-getaddrinfo.patch
# Assorted fixes
Patch113: coreutils-misc.patch
# gnulib seg.faults if there is no session
# Upstream gnulib commits (squashed) to fix gnulib seg.faults
# if there is no session:
# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65617
Patch114: gnulib-readutmp.patch
# Upstream gnulib patch to fix crash when gdm is in use. [bsc#1215361]
Patch115: gnulib-readutmp-under-gdm.patch
# Skip 2 valgrind'ed sort tests on ppc/ppc64 which would fail due to
# a glibc issue in mkstemp.
Patch300: coreutils-skip-some-sort-tests-on-ppc.patch
@ -155,6 +158,7 @@ This package contains the documentation for the GNU Core Utilities.
%patch112
%patch113
%patch114 -p1
%patch115 -p1
%patch300

View File

@ -0,0 +1,35 @@
Upstream gnulib patch to fix crash when gdm is in use. [bsc#1215361]
From 579f2d6f3d1d817c2f7e2c603c9a3ded63dcaa92 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Fri, 15 Sep 2023 17:40:10 +0200
Subject: [PATCH] readutmp: Fix crash when gdm is in use.
Reported by Thorsten Kukuk <kukuk@suse.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-09/msg00093.html>.
* lib/readutmp.c (read_utmp_from_systemd): Don't use the value returned
by sd_session_get_display if it is NULL.
---
lib/readutmp.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/readutmp.c b/lib/readutmp.c
index ec09feb59b..d8213e7ad5 100644
--- a/lib/readutmp.c
+++ b/lib/readutmp.c
@@ -873,7 +873,10 @@ read_utmp_from_systemd (idx_t *n_entries, STRUCT_UTMP **utmp_buf, int options)
char *display;
if (sd_session_get_display (session, &display) < 0)
display = NULL;
- host = display;
+ /* Workaround: gdm "forgets" to pass the display to
+ systemd, thus display may be NULL here. */
+ if (display != NULL)
+ host = display;
}
}
else
--
2.42.0

View File

@ -1,3 +1,30 @@
This squashes 2 consecutive upstream gnulib commits
to fix gnulib seg.faults if there is no session:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65617
Upstream gnulib commit 3af1d7b0ce3a8e3ae565e7cea10cee6fd7cb8109
2023-08-31 Bruno Haible <bruno@clisp.org>
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).
Upstream gnulib commit 1e6a26f9312bb47e070f94b17b14dc1a6ffbb74f
2023-08-30 Paul Eggert <eggert@cs.ucla.edu>
readutmp: fix core dump if --enable-systemd
Problem reported by Thorsten Kukuk <https://bugs.gnu.org/65617>.
* lib/readutmp.c (read_utmp_from_systemd):
Dont assume session_ptr != NULL if num_sessions == 0.
In practice it can be null, and the man page OKs this behavior.
---
lib/readutmp.c | 2 +-
1 files changed, 1 insertions(+), 1 deletion(-)
diff --git a/lib/readutmp.c b/lib/readutmp.c
index 0173b7e0c1..e99158677c 100644
--- a/lib/readutmp.c
@ -7,7 +34,10 @@ index 0173b7e0c1..e99158677c 100644
char **sessions;
int num_sessions = sd_get_sessions (&sessions);
- if (num_sessions >= 0)
+ if (num_sessions > 0)
+ if (num_sessions >= 0 && sessions != NULL)
{
char **session_ptr;
for (session_ptr = sessions; *session_ptr != NULL; session_ptr++)
--
2.42.0