Skip to content
Commits on Source (5)
================
Version 3.38.2.1
================
- Address autologin unlock bug issue (CVE-2020-27837)
- Translation updates
==============
Version 3.38.2
==============
......
......@@ -66,6 +66,7 @@
#include "gdm-pam-extensions.h"
#endif
#include "gdm-dbus-glue.h"
#include "gdm-session-worker.h"
#include "gdm-session-glue.h"
#include "gdm-session.h"
......@@ -1051,18 +1052,6 @@ gdm_session_worker_uninitialize_pam (GdmSessionWorker *worker,
gdm_session_worker_stop_auditor (worker);
/* If user-display-server is not enabled the login_vt is always
* identical to the session_vt. So in that case we never need to
* do a VT switch. */
#ifdef ENABLE_USER_DISPLAY_SERVER
if (g_strcmp0 (worker->priv->display_seat_id, "seat0") == 0) {
/* Switch to the login VT if we are not the login screen. */
if (worker->priv->session_vt != GDM_INITIAL_VT) {
jump_to_vt (worker, GDM_INITIAL_VT);
}
}
#endif
worker->priv->session_vt = 0;
g_debug ("GdmSessionWorker: state NONE");
......@@ -1775,6 +1764,53 @@ run_script (GdmSessionWorker *worker,
worker->priv->x11_authority_file);
}
static void
wait_until_dbus_signal_emission_to_manager_finishes (GdmSessionWorker *worker)
{
g_autoptr (GdmDBusPeer) peer_proxy = NULL;
g_autoptr (GError) error = NULL;
gboolean pinged;
peer_proxy = gdm_dbus_peer_proxy_new_sync (worker->priv->connection,
G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
NULL,
"/org/freedesktop/DBus",
NULL,
&error);
if (peer_proxy == NULL) {
g_debug ("GdmSessionWorker: could not create peer proxy to daemon: %s",
error->message);
return;
}
pinged = gdm_dbus_peer_call_ping_sync (peer_proxy, NULL, &error);
if (!pinged) {
g_debug ("GdmSessionWorker: could not ping daemon: %s",
error->message);
return;
}
}
static void
jump_back_to_initial_vt (GdmSessionWorker *worker)
{
if (worker->priv->session_vt == 0)
return;
if (worker->priv->session_vt == GDM_INITIAL_VT)
return;
if (g_strcmp0 (worker->priv->display_seat_id, "seat0") != 0)
return;
#ifdef ENABLE_USER_DISPLAY_SERVER
jump_to_vt (worker, GDM_INITIAL_VT);
worker->priv->session_vt = 0;
#endif
}
static void
session_worker_child_watch (GPid pid,
int status,
......@@ -1789,18 +1825,40 @@ session_worker_child_watch (GPid pid,
: WIFSIGNALED (status) ? WTERMSIG (status)
: -1);
gdm_session_worker_uninitialize_pam (worker, PAM_SUCCESS);
worker->priv->child_pid = -1;
worker->priv->child_watch_id = 0;
run_script (worker, GDMCONFDIR "/PostSession");
gdm_dbus_worker_emit_session_exited (GDM_DBUS_WORKER (worker),
worker->priv->service,
status);
killpg (pid, SIGHUP);
worker->priv->child_pid = -1;
worker->priv->child_watch_id = 0;
run_script (worker, GDMCONFDIR "/PostSession");
/* FIXME: It's important to give the manager an opportunity to process the
* session-exited emission above before switching VTs.
*
* This is because switching VTs makes the manager try to put a login screen
* up on VT 1, but it may actually want to try to auto login again in response
* to session-exited.
*
* This function just does a manager roundtrip over the bus to make sure the
* signal has been dispatched before jumping.
*
* Ultimately, we may want to improve the manager<->worker interface.
*
* See:
*
* https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/123
*
* for some ideas and more discussion.
*
*/
wait_until_dbus_signal_emission_to_manager_finishes (worker);
jump_back_to_initial_vt (worker);
}
static void
......@@ -2424,6 +2482,7 @@ gdm_session_worker_open_session (GdmSessionWorker *worker,
out:
if (error_code != PAM_SUCCESS) {
gdm_session_worker_uninitialize_pam (worker, error_code);
worker->priv->session_vt = 0;
return FALSE;
}
......@@ -3549,6 +3608,8 @@ gdm_session_worker_finalize (GObject *object)
gdm_session_worker_uninitialize_pam (worker, PAM_SUCCESS);
}
jump_back_to_initial_vt (worker);
g_object_unref (worker->priv->user_settings);
g_free (worker->priv->service);
g_free (worker->priv->x11_display_name);
......
# D-Bus interfaces
dbus_gen = gnome.gdbus_codegen('gdm-dbus-glue',
'org.freedesktop.DBus.xml',
namespace: 'GdmDBus',
interface_prefix: 'org.freedesktop.DBus',
autocleanup: 'all',
)
display_dbus_gen = gnome.gdbus_codegen('gdm-display-glue',
'gdm-display.xml',
namespace: 'GdmDBus',
......@@ -87,6 +93,7 @@ gdm_session_worker_src = [
'gdm-session-worker-job.c',
'gdm-session-worker-common.c',
'gdm-dbus-util.c',
dbus_gen,
session_dbus_gen,
session_worker_dbus_gen,
gdm_session_enums,
......
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.freedesktop.DBus.Peer">
<method name="GetMachineId">
<arg direction="out" type="s"/>
</method>
<method name="Ping">
</method>
</interface>
</node>
......@@ -426,10 +426,10 @@ msgid ""
"been reimplemented yet."
msgstr ""
"El GDM 2.20 i les versions anteriors admetien configuracions d'interfície "
"estables. Tot i així, es va reescriure el codi totalment pel GDM 2.22 i no "
"estables. Tot i això, es va reescriure el codi totalment pel GDM 2.22 i no "
"és del tot compatible amb les versions anteriors. Això és en part perquè ara "
"funciona una mica diferent, de manera que algunes opcions no tenen cap "
"sentit, entre d'altres coses perquè algunes opcions mai van tenir sentit i "
"sentit, entre altres coses perquè algunes opcions mai van tenir sentit i "
"també perquè algunes funcions encara no s'han tornat a implementar."
#. (itstool) path: sect2/para
......@@ -534,7 +534,7 @@ msgstr ""
"Aquest usuari i grup són descrits a la secció «Seguretat» d'aquest document. "
"Les funcions principals del programa rebedor són proporcionar un mecanisme "
"per seleccionar un compte per entrar i per conduir el diàleg entre l'usuari "
"i el sistema en autenticar-se al compte. El procés d'autenticació és conduit "
"i el sistema en autenticar-se al compte. El procés d'autenticació és conduït "
"pels mòduls dels connectors d'autenticació (Pluggable Authentication Modules o "
"PAM). Els mòduls del PAM determinen quines preguntes (si n'hi ha) es mostren "
"a l'usuari per autenticar-lo. En sistemes convencionals, el programa rebedor "
......@@ -1544,7 +1544,7 @@ msgid ""
"X is not a very safe protocol when using it over the Internet, and XDMCP is "
"even less safe."
msgstr ""
"L'X no és un protocol molt segur per utilitzar-se per Internet i l'XDMCP ho "
"X no és un protocol molt segur per utilitzar-se per Internet i XDMCP ho "
"és encara menys."
#. (itstool) path: sect2/title
......@@ -1755,8 +1755,8 @@ msgid ""
"Xserver DISPLAY value for that display. For example, if the <filename>&lt;"
"Init&gt;/:0</filename> script exists, it will be run for DISPLAY \":0\"."
msgstr ""
"Per a cada tipus d'script, el que s'executarà per defecte s'anomena "
"«Default» i s'emmagatzema en un directori associat amb el tipus d'script. De "
"Per a cada tipus de script, el que s'executarà per defecte s'anomena "
"«Default» i s'emmagatzema en un directori associat amb el tipus de script. De "
"manera que l'script per defecte de l'<filename>Init</filename> es troba a "
"<filename>&lt;etc&gt;/gdm/Init/Default</filename>. Es pot proporcionar un "
"script per pantalla, si existeix, s'executarà en lloc de l'script per "
......@@ -1881,7 +1881,7 @@ msgid ""
"only be launched if a GConf configuration value is set, etc."
msgstr ""
"El directori <filename>&lt;share&gt;/gdm/autostart/LoginWindow</filename> "
"conté fitxers en el format que especifica la «FreeDesktop.org Desktop "
"conté fitxers en el format que especifica la «FreeDesktop.org Desktop "
"Application Autostart Specification». Es poden emprar les característiques "
"estàndard de l'especificació per indicar quins programes han de reiniciar-"
"se, només en el cas que s'hagi definit el valor corresponent al GConf, "
......@@ -2286,7 +2286,7 @@ msgstr ""
"Per habilitar la depuració, poseu la clau debug/Enable a «true» al fitxer "
"<filename>&lt;etc&gt;/gdm/custom.conf</filename> i reinicieu el GDM. "
"Aleshores la sortida de depuració s'enviarà al fitxer de registre del "
"sistema (<filename>&lt;var&gt;/log/messages</filename> o <filename>&lt;"
"sistema (<filename>&lt;var&gt;/log/messages</filename> o <filename>&lt;"
"var&gt;/adm/messages</filename> depenent de quin sigui el vostre sistema "
"operatiu)."
......@@ -2477,7 +2477,7 @@ msgid ""
"remote connections via XDMCP are limited by this configuration option."
msgstr ""
"Tingueu en compte que el nombre de pantalles locals permeses no està "
"limitat. Només les connexions remotes mitjançant l'XDMCP estan limitades per "
"limitat. Només les connexions remotes mitjançant XDMCP estan limitades per "
"aquesta opció de configuració."
#. (itstool) path: listitem/para
......@@ -2537,7 +2537,7 @@ msgid ""
"Please note that XDMCP is not a particularly secure protocol and that it is "
"a good idea to block UDP port 177 on your firewall unless you really need it."
msgstr ""
"Tingueu en compte que l'XDMCP no és un protocol precisament segur i que és "
"Tingueu en compte que XDMCP no és un protocol precisament segur i que és "
"una bona idea bloquejar el port UDP 177 al tallafoc a no ser que realment "
"el necessiteu."
......@@ -2709,7 +2709,7 @@ msgid ""
"this setting by 2, so it may be necessary to increase the timeout if "
"upgrading from GDM 2.20 and earlier to a newer version."
msgstr ""
"Si l'Xserver no respon durant el temps determinat, la connexió s'atura i "
"Si Xserver no respon durant el temps determinat, la connexió s'atura i "
"s'acaba la sessió. Quan això passa el dimoni esclau mor amb un senyal ALARM. "
"Tingueu present que el GDM 2.20 i anteriors multiplicaven aquest valor per "
"2, així que és possible que calgui incrementar el temps d'expiració si "
......@@ -2728,7 +2728,7 @@ msgstr ""
"Tingueu en compte que el GDM en el passat utilitzava la clau de configuració "
"<filename>PingInterval</filename> que estava en minuts. Per a la majoria de "
"propòsits voldreu que aquest paràmetre sigui inferior d'un minut ja que en "
"la majoria de casos on l'XDMCP s'hauria d'utilitzar (com terminals de "
"la majoria de casos on XDMCP s'hauria d'utilitzar (com terminals de "
"laboratori), un retard de 15 o més segons significaria realment que el "
"terminal s'ha apagat o s'ha tornat a iniciar i voldríeu finalitzar la sessió."
......@@ -3049,7 +3049,7 @@ msgstr ""
"tenen clau respectiva al GConf perquè no s'inicia cap programa per "
"proporcionar les característiques d'accessibilitat que ofereixen. Aquestes "
"altres opcions corresponen a característiques d'accessibilitat que "
"proporciona l'Xserver, que sempre s'executa durant la sessió del GDM."
"proporciona Xserver, que sempre s'executa durant la sessió del GDM."
#. (itstool) path: sect3/title
#: C/index.docbook:1774
......@@ -3362,7 +3362,7 @@ msgid ""
"background, sound, xsettings."
msgstr ""
"El GDM habilita els connectors següents del gnome-settings-daemon: l'a11y-"
"keyboard, el background, el sound i l'xsettings."
"keyboard, el background, el sound i xsettings."
#. (itstool) path: sect2/para
#: C/index.docbook:1977
......@@ -3456,7 +3456,7 @@ msgstr ""
"al fitxer d'escriptori, el valor queda predeterminat a \"false\". Si la clau "
"té el valor \"true\" al fitxer d'escriptori, aleshores el GDM iniciarà el "
"programa especificat a la clau \"Exec\" del mateix fitxer en iniciar una "
"sessió d'usuari. No iniciarà el programa mitjançant l'script <filename>&lt;"
"sessió d'usuari. No iniciarà el programa mitjançant l'script <filename>&lt;"
"etc&gt;/gdm/Xsession</filename> que és el comportament habitual. En obviar "
"l'script, s'evita iniciar la sessió d'usuari amb els paràmetres d'usuari i "
"de sistema normals. Les sessions iniciades d'aquesta forma són útils per a "
......@@ -3778,7 +3778,7 @@ msgid ""
"FITNESS FOR A PARTICULAR PURPOSE. See the <citetitle>GNU General Public "
"License</citetitle> for more details."
msgstr ""
"Aquest programa es distribueix amb l'esperança de que sigui útil, però SENSE "
"Aquest programa es distribueix amb l'esperança que sigui útil, però SENSE "
"CAP GARANTIA; fins i tot sense la garantia implícita de COMERCIALITZACIÓ o "
"ADEQUACIÓ A UN ÚS CONCRET. Per a més detalls vegeu la <citetitle>Llicència "
"pública general de GNU</citetitle>."
......
project('gdm', 'c',
version: '3.38.2',
version: '3.38.2.1',
license: 'GPL2+',
meson_version: '>= 0.50',
)
......