mirror of https://github.com/MidnightCommander/mc
* main.c (handle_args): Set POPT_CONTEXT_NO_EXEC flag for
poptGetContext(). * popt.c: Call abort() in execCommand() - we should not execute anything here.
This commit is contained in:
parent
9860f07fc9
commit
2c8f2419e5
|
@ -1,5 +1,10 @@
|
|||
2002-08-19 Pavel Roskin <proski@gnu.org>
|
||||
|
||||
* main.c (handle_args): Set POPT_CONTEXT_NO_EXEC flag for
|
||||
poptGetContext().
|
||||
* popt.c: Call abort() in execCommand() - we should not execute
|
||||
anything here.
|
||||
|
||||
* util.h: Remove unused and dangerous flags for my_system():
|
||||
EXECUTE_TEMPFILE, EXECUTE_SETUID and EXECUTE_WAIT.
|
||||
* utilunix.c: Corresponding adjustments.
|
||||
|
|
|
@ -2291,7 +2291,8 @@ handle_args (int argc, char *argv [])
|
|||
char *option_arg, *base;
|
||||
int c;
|
||||
|
||||
ctx = poptGetContext ("mc", argc, argv, argument_table, 0);
|
||||
ctx = poptGetContext ("mc", argc, argv, argument_table,
|
||||
POPT_CONTEXT_NO_EXEC);
|
||||
|
||||
#ifdef USE_TERMCAP
|
||||
SLtt_Try_Termcap = 1;
|
||||
|
|
21
src/popt.c
21
src/popt.c
|
@ -193,6 +193,7 @@ static int handleAlias(poptContext con, char * longName, char shortName,
|
|||
}
|
||||
|
||||
static void execCommand(poptContext con) {
|
||||
#if 0
|
||||
char ** argv;
|
||||
int pos = 0;
|
||||
char * script = con->doExec->script;
|
||||
|
@ -225,24 +226,10 @@ static void execCommand(poptContext con) {
|
|||
|
||||
argv[pos++] = NULL;
|
||||
|
||||
#ifdef __hpux
|
||||
setresuid(getuid(), getuid(),-1);
|
||||
#else
|
||||
/*
|
||||
* XXX " ... on BSD systems setuid() should be preferred over setreuid()"
|
||||
* XXX sez' Timur Bakeyev <mc@bat.ru>
|
||||
* XXX from Norbert Warmuth <nwarmuth@privat.circular.de>
|
||||
*/
|
||||
#if defined(HAVE_SETUID)
|
||||
setuid(getuid());
|
||||
#elif defined (HAVE_SETREUID)
|
||||
setreuid(getuid(), getuid()); /*hlauer: not portable to hpux9.01 */
|
||||
#else
|
||||
; /* Cannot drop privileges */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
execvp(argv[0], argv);
|
||||
#else
|
||||
abort();
|
||||
#endif
|
||||
}
|
||||
|
||||
static const struct poptOption * findOption(const struct poptOption * table,
|
||||
|
|
Loading…
Reference in New Issue