diff --git a/su.c b/su.c index 6847d3f33..12be89c8a 100644 --- a/su.c +++ b/su.c @@ -442,7 +442,6 @@ static void usage(int status) { "Options:\n" " --daemon start the su daemon agent\n" " -c, --command COMMAND pass COMMAND to the invoked shell\n" - " --context context Change SELinux context\n" " -h, --help display this help message and exit\n" " -, -l, --login pretend the shell to be a login shell\n" " -m, -p,\n" @@ -540,12 +539,8 @@ static __attribute__ ((noreturn)) void allow(struct su_context *ctx) { arg0, PARG(0), PARG(1), PARG(2), PARG(3), PARG(4), PARG(5), (ctx->to.optind + 6 < ctx->to.argc) ? " ..." : ""); - if(ctx->to.context) { - setexeccon(ctx->to.context); - } else { - setexeccon("u:r:su:s0"); - } - + setexeccon("u:r:su:s0"); + ctx->to.argv[--argc] = arg0; execvp(binary, ctx->to.argv + argc); err = errno; @@ -691,7 +686,6 @@ int su_main_nodaemon(int argc, char **argv) { .keepenv = 0, .shell = NULL, .command = NULL, - .context = NULL, .argv = argv, .argc = argc, .optind = 0, @@ -761,7 +755,7 @@ int su_main_nodaemon(int argc, char **argv) { } exit(EXIT_SUCCESS); case 'z': - ctx.to.context = optarg; + // Do nothing, placed here for legacy support :) break; default: /* Bionic getopt_long doesn't terminate its error output by newline */ diff --git a/su.h b/su.h index 7a45ae56c..7f4aef61d 100644 --- a/su.h +++ b/su.h @@ -95,7 +95,6 @@ struct su_request { int login; int keepenv; char *shell; - char *context; char *command; char **argv; int argc;