diff options
author | William Jon McCann <jmccann@redhat.com> | 2010-06-30 10:20:43 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2010-08-17 13:45:20 -0400 |
commit | 9310418c63258dfd70cef46e2682cd9adc6c8f21 (patch) | |
tree | 3931193258559e6570482801acebc46b3aed3d1f /daemon/gdm-server.c | |
parent | 36e72382eb19c31ee9e59b72f27cb8537ef960dd (diff) | |
download | gdm-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.c | 4 |
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)) { |