Blob Blame History Raw
From 63d74edc4b112669fdce14d88d37e2dd0315ff7e Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Tue, 19 Nov 2019 09:29:16 -0500
Subject: [PATCH] gnome-session: don't validate shell before using it

Users sometimes set their shell to an invalid shell to prevent
login from proceeding.

GNOME on Wayland still allows login in these cases.

This commit makes the behavior match expectations by skipping
shell validity checks when deciding to run though a login shell.
---
 gnome-session/gnome-session.in | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
index ddd1a591..b4b1f8fa 100755
--- a/gnome-session/gnome-session.in
+++ b/gnome-session/gnome-session.in
@@ -1,32 +1,29 @@
 #!/bin/sh
 
 if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
    [ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
-   [  -n "$SHELL" ] &&
-   grep -q "$SHELL" /etc/shells &&
-   ! (echo "$SHELL" | grep -q "false") &&
-   ! (echo "$SHELL" | grep -q "nologin"); then
+   [  -n "$SHELL" ]; then
   if [ "$1" != '-l' ]; then
     exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
   else
     shift
   fi
 fi
 
 SETTING=$(G_MESSAGES_DEBUG='' gsettings get org.gnome.system.locale region)
 REGION=${SETTING#\'}
 REGION=${REGION%\'}
 
 if [ -n "$REGION" ]; then
   unset LC_TIME LC_NUMERIC LC_MONETARY LC_MEASUREMENT LC_PAPER
 
   if [ "$LANG" != "$REGION" ] ; then
     export LC_TIME=$REGION
     export LC_NUMERIC=$REGION
     export LC_MONETARY=$REGION
     export LC_MEASUREMENT=$REGION
     export LC_PAPER=$REGION
   fi
 fi
 
 exec @libexecdir@/gnome-session-binary "$@"
-- 
2.32.0