mksh no longer looks at its own called name or $SHELL
to determine if it should be a restricted shell
This commit is contained in:
parent
29d0a88111
commit
bfc5b81602
4
check.t
4
check.t
@ -1,4 +1,4 @@
|
|||||||
# $MirOS: src/bin/mksh/check.t,v 1.18 2005/06/24 15:42:03 tg Exp $
|
# $MirOS: src/bin/mksh/check.t,v 1.19 2005/07/04 11:57:55 tg Exp $
|
||||||
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
||||||
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
||||||
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
||||||
@ -3700,5 +3700,5 @@ category: pdksh
|
|||||||
stdin:
|
stdin:
|
||||||
echo $KSH_VERSION
|
echo $KSH_VERSION
|
||||||
expected-stdout:
|
expected-stdout:
|
||||||
@(#)MIRBSD KSH R23 2005/06/24
|
@(#)MIRBSD KSH R23 2005/07/04
|
||||||
---
|
---
|
||||||
|
21
main.c
21
main.c
@ -1,4 +1,4 @@
|
|||||||
/** $MirOS: src/bin/mksh/main.c,v 1.16 2005/06/24 15:42:03 tg Exp $ */
|
/** $MirOS: src/bin/mksh/main.c,v 1.17 2005/07/04 11:57:55 tg Exp $ */
|
||||||
/* $OpenBSD: main.c,v 1.38 2005/03/30 17:16:37 deraadt Exp $ */
|
/* $OpenBSD: main.c,v 1.38 2005/03/30 17:16:37 deraadt Exp $ */
|
||||||
/* $OpenBSD: tty.c,v 1.8 2005/03/30 17:16:37 deraadt Exp $ */
|
/* $OpenBSD: tty.c,v 1.8 2005/03/30 17:16:37 deraadt Exp $ */
|
||||||
/* $OpenBSD: io.c,v 1.21 2005/03/30 17:16:37 deraadt Exp $ */
|
/* $OpenBSD: io.c,v 1.21 2005/03/30 17:16:37 deraadt Exp $ */
|
||||||
@ -13,15 +13,14 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/main.c,v 1.16 2005/06/24 15:42:03 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/main.c,v 1.17 2005/07/04 11:57:55 tg Exp $");
|
||||||
|
|
||||||
const char ksh_version[] = "@(#)MIRBSD KSH R23 2005/06/24";
|
const char ksh_version[] = "@(#)MIRBSD KSH R23 2005/07/04";
|
||||||
|
|
||||||
extern char **environ;
|
extern char **environ;
|
||||||
|
|
||||||
static void reclaim(void);
|
static void reclaim(void);
|
||||||
static void remove_temps(struct temp * tp);
|
static void remove_temps(struct temp * tp);
|
||||||
static int is_restricted(char *name);
|
|
||||||
|
|
||||||
static const char initifs[] = "IFS= \t\n";
|
static const char initifs[] = "IFS= \t\n";
|
||||||
|
|
||||||
@ -329,8 +328,6 @@ main(int argc, char *argv[])
|
|||||||
include(env_file, 0, NULL, 1);
|
include(env_file, 0, NULL, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_restricted(argv[0]) || is_restricted(str_val(global("SHELL"))))
|
|
||||||
restricted = 1;
|
|
||||||
if (restricted) {
|
if (restricted) {
|
||||||
static const char *const restr_com[] = {
|
static const char *const restr_com[] = {
|
||||||
"typeset", "-r", "PATH",
|
"typeset", "-r", "PATH",
|
||||||
@ -687,18 +684,6 @@ remove_temps(struct temp *tp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns true if name refers to a restricted shell */
|
|
||||||
static int
|
|
||||||
is_restricted(char *name)
|
|
||||||
{
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
if ((p = strrchr(name, '/')))
|
|
||||||
name = p;
|
|
||||||
/* accepts rsh, rksh, rmksh, rpdksh, pdrksh, etc. */
|
|
||||||
return (p = strchr(name, 'r')) && strstr(p, "sh");
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
aerror(Area *ap __attribute__((unused)), const char *msg)
|
aerror(Area *ap __attribute__((unused)), const char *msg)
|
||||||
{
|
{
|
||||||
|
12
mksh.1
12
mksh.1
@ -1,4 +1,4 @@
|
|||||||
.\" $MirOS: src/bin/mksh/mksh.1,v 1.9 2005/06/08 21:51:21 tg Exp $
|
.\" $MirOS: src/bin/mksh/mksh.1,v 1.10 2005/07/04 11:57:55 tg Exp $
|
||||||
.\" $OpenBSD: ksh.1,v 1.99 2005/05/25 16:52:06 jaredy Exp $
|
.\" $OpenBSD: ksh.1,v 1.99 2005/05/25 16:52:06 jaredy Exp $
|
||||||
.\" $OpenBSD: sh.1tbl,v 1.53 2004/12/10 01:56:56 jaredy Exp $
|
.\" $OpenBSD: sh.1tbl,v 1.53 2004/12/10 01:56:56 jaredy Exp $
|
||||||
.\"
|
.\"
|
||||||
@ -107,15 +107,7 @@ Restricted shell.
|
|||||||
A shell is
|
A shell is
|
||||||
.Dq restricted
|
.Dq restricted
|
||||||
if this
|
if this
|
||||||
option is used or if either the basename the shell was invoked
|
option is used.
|
||||||
with or the
|
|
||||||
.Ev SHELL
|
|
||||||
parameter match the pattern
|
|
||||||
.Dq *r*sh
|
|
||||||
(e.g.\&
|
|
||||||
.Nm rsh ,
|
|
||||||
.Nm rksh ,
|
|
||||||
.Nm rpdksh ) .
|
|
||||||
The following restrictions come into effect after the shell processes any
|
The following restrictions come into effect after the shell processes any
|
||||||
profile and
|
profile and
|
||||||
.Ev ENV
|
.Ev ENV
|
||||||
|
Loading…
x
Reference in New Issue
Block a user