use issetugid(2) as additional aid in determining if we are FPRIVILEGED
This commit is contained in:
parent
478a2af837
commit
e239a8358a
9
Build.sh
9
Build.sh
@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.666 2014/09/29 18:57:00 tg Exp $'
|
srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.667 2014/10/03 17:19:26 tg Exp $'
|
||||||
#-
|
#-
|
||||||
# Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
# Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||||||
# 2011, 2012, 2013, 2014
|
# 2011, 2012, 2013, 2014
|
||||||
@ -1784,7 +1784,7 @@ else
|
|||||||
#define EXTERN
|
#define EXTERN
|
||||||
#define MKSH_INCLUDES_ONLY
|
#define MKSH_INCLUDES_ONLY
|
||||||
#include "sh.h"
|
#include "sh.h"
|
||||||
__RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.666 2014/09/29 18:57:00 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.667 2014/10/03 17:19:26 tg Exp $");
|
||||||
int main(void) { printf("Hello, World!\n"); return (isatty(0)); }
|
int main(void) { printf("Hello, World!\n"); return (isatty(0)); }
|
||||||
EOF
|
EOF
|
||||||
case $cm in
|
case $cm in
|
||||||
@ -1904,6 +1904,11 @@ ac_test gettimeofday <<-'EOF'
|
|||||||
int main(void) { struct timeval tv; return (gettimeofday(&tv, NULL)); }
|
int main(void) { struct timeval tv; return (gettimeofday(&tv, NULL)); }
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
ac_test issetugid <<-'EOF'
|
||||||
|
#include <unistd.h>
|
||||||
|
int main(void) { return (issetugid()); }
|
||||||
|
EOF
|
||||||
|
|
||||||
ac_test killpg <<-'EOF'
|
ac_test killpg <<-'EOF'
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
int main(int ac, char *av[]) { return (av[0][killpg(123, ac)]); }
|
int main(int ac, char *av[]) { return (av[0][killpg(123, ac)]); }
|
||||||
|
8
main.c
8
main.c
@ -34,7 +34,7 @@
|
|||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/main.c,v 1.283 2014/10/02 13:55:16 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/main.c,v 1.284 2014/10/03 17:19:27 tg Exp $");
|
||||||
|
|
||||||
extern char **environ;
|
extern char **environ;
|
||||||
|
|
||||||
@ -407,7 +407,11 @@ main_init(int argc, const char *argv[], Source **sp, struct block **lp)
|
|||||||
setint_n((vp_pipest = global("PIPESTATUS")), 0, 10);
|
setint_n((vp_pipest = global("PIPESTATUS")), 0, 10);
|
||||||
|
|
||||||
/* Set this before parsing arguments */
|
/* Set this before parsing arguments */
|
||||||
Flag(FPRIVILEGED) = (kshuid != ksheuid || kshgid != kshegid) ? 2 : 0;
|
Flag(FPRIVILEGED) = (
|
||||||
|
#if HAVE_ISSETUGID
|
||||||
|
issetugid() ||
|
||||||
|
#endif
|
||||||
|
kshuid != ksheuid || kshgid != kshegid) ? 2 : 0;
|
||||||
|
|
||||||
/* this to note if monitor is set on command line (see below) */
|
/* this to note if monitor is set on command line (see below) */
|
||||||
#ifndef MKSH_UNEMPLOYED
|
#ifndef MKSH_UNEMPLOYED
|
||||||
|
Loading…
Reference in New Issue
Block a user