I don't understand this code in that patch: + while (true) { + unowned Posix.Passwd passwd = Posix.getpwent(); + if (passwd.pw_name == GLib.Environment.get_user_name()) { + found = true; + cmd += passwd.pw_shell; + break; + } + }
Will that loop forever if get_user_name returns something that doesn't have an entry in /etc/passwd?