summaryrefslogtreecommitdiff
path: root/daemon/gdm-server.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <jmccann@redhat.com>2010-06-30 10:20:43 -0400
committerRay Strode <rstrode@redhat.com>2010-08-17 13:45:20 -0400
commit9310418c63258dfd70cef46e2682cd9adc6c8f21 (patch)
tree3931193258559e6570482801acebc46b3aed3d1f /daemon/gdm-server.c
parent36e72382eb19c31ee9e59b72f27cb8537ef960dd (diff)
downloadgdm-9310418c63258dfd70cef46e2682cd9adc6c8f21.tar.gz
Wrap getpw* calls to retry in EINTR
if getpwnam(username) returns NULL, errno needs to be checked for EINTR. This indicates that a signal was received while waiting for the blocking call to return, and getpwnam() should be retried.
Diffstat (limited to 'daemon/gdm-server.c')
-rw-r--r--daemon/gdm-server.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
index dfb526e1..339f3ccc 100644
--- a/daemon/gdm-server.c
+++ b/daemon/gdm-server.c
@@ -360,7 +360,7 @@ change_user (GdmServer *server)
return;
}
- pwent = getpwnam (server->priv->user_name);
+ gdm_get_pwent_for_name (server->priv->user_name, &pwent);
if (pwent == NULL) {
g_warning (_("Server was to be spawned by user %s but that user doesn't exist"),
server->priv->user_name);
@@ -531,7 +531,7 @@ get_server_environment (GdmServer *server)
if (server->priv->user_name != NULL) {
struct passwd *pwent;
- pwent = getpwnam (server->priv->user_name);
+ gdm_get_pwent_for_name (server->priv->user_name, &pwent);
if (pwent->pw_dir != NULL
&& g_file_test (pwent->pw_dir, G_FILE_TEST_EXISTS)) {