From: djm@openbsd.org Date: Fri, 9 Aug 2019 05:05:54 +0000 (+0000) Subject: upstream: produce a useful error message if the user's shell is set X-Git-Tag: V_8_1_P1~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ab5b9474779ac4f581d402ae397f871ed16b383;p=thirdparty%2Fopenssh-portable.git upstream: produce a useful error message if the user's shell is set incorrectly during "match exec" processing. bz#2791 reported by Dario Bertini; ok dtucker OpenBSD-Commit-ID: cf9eddd6a6be726cb73bd9c3936f3888cd85c03d --- diff --git a/readconf.c b/readconf.c index 27b535e1f..d1b7871ec 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.307 2019/06/28 13:35:04 deraadt Exp $ */ +/* $OpenBSD: readconf.c,v 1.308 2019/08/09 05:05:54 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -486,6 +486,11 @@ execute_in_shell(const char *cmd) if ((shell = getenv("SHELL")) == NULL) shell = _PATH_BSHELL; + if (access(shell, X_OK) == -1) { + fatal("Shell \"%s\" is not executable: %s", + shell, strerror(errno)); + } + /* Need this to redirect subprocess stdin/out */ if ((devnull = open(_PATH_DEVNULL, O_RDWR)) == -1) fatal("open(/dev/null): %s", strerror(errno));