summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--daemon/gdm-session-worker.c12
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: