diff options
-rw-r--r-- | daemon/gdm-session-worker.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c index 3acdfee7..228460cb 100644 --- a/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c @@ -1405,10 +1405,18 @@ _lookup_passwd_info (const char *username, *gidp = passwd_entry->pw_gid; } if (homep != NULL) { - *homep = g_strdup (passwd_entry->pw_dir); + if (passwd_entry->pw_dir != NULL && passwd_entry->pw_dir[0] != '\0') { + *homep = g_strdup (passwd_entry->pw_dir); + } else { + *homep = g_strdup ("/"); + } } if (shellp != NULL) { - *shellp = g_strdup (passwd_entry->pw_shell); + if (passwd_entry->pw_shell != NULL && passwd_entry->pw_shell[0] != '\0') { + *shellp = g_strdup (passwd_entry->pw_shell); + } else { + *shellp = g_strdup ("/bin/bash"); + } } ret = TRUE; out: |