Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
SUSE:SLE-15-SP1:Update
gdm
gdm-display-Exit-with-failure-if-loading-existi...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gdm-display-Exit-with-failure-if-loading-existing-users-fails.patch of Package gdm
From dc8235128c3a1fcd5da8f30ab6839d413d353f28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net> Date: Tue, 27 Oct 2020 15:14:27 +0100 Subject: [PATCH] display: Exit with failure if loading existing users fails Given not having users may make GDM to launch initial setup, that allows to create new users (potentially with sudo capabilities), it's better to make look_for_existing_users() to return its status and only if it didn't fail continue the gdm execution. GHSL-2020-202 CVE-2020-16125 Fixes #642 --- daemon/gdm-display.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) Index: gdm-3.26.2.1/daemon/gdm-display.c =================================================================== --- gdm-3.26.2.1.orig/daemon/gdm-display.c +++ gdm-3.26.2.1/daemon/gdm-display.c @@ -536,7 +536,7 @@ gdm_display_real_prepare (GdmDisplay *se return TRUE; } -static void +static gboolean look_for_existing_users_sync (GdmDisplay *self) { GError *error = NULL; @@ -552,7 +552,7 @@ look_for_existing_users_sync (GdmDisplay &error); if (!self->priv->accountsservice_proxy) { - g_warning ("Failed to contact accountsservice: %s", error->message); + g_critical ("Failed to contact accountsservice: %s", error->message); goto out; } @@ -565,7 +565,7 @@ look_for_existing_users_sync (GdmDisplay &error); if (!call_result) { - g_warning ("Failed to list cached users: %s", error->message); + g_critical ("Failed to list cached users: %s", error->message); goto out; } @@ -575,6 +575,7 @@ look_for_existing_users_sync (GdmDisplay g_variant_unref (call_result); out: g_clear_error (&error); + return self->priv->accountsservice_proxy != NULL && call_result != NULL; } gboolean @@ -589,7 +590,9 @@ gdm_display_prepare (GdmDisplay *self) /* FIXME: we should probably do this in a more global place, * asynchronously */ - look_for_existing_users_sync (self); + if (!look_for_existing_users_sync (self)) { + exit (EXIT_FAILURE); + } self->priv->doing_initial_setup = wants_initial_setup (self);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor