On 12/16/2015 07:25 PM, Tyler Hicks wrote: > Call aa_change_profile(), instead of aa_change_onexec(), when > --immediate is passed in. > > Signed-off-by: Tyler Hicks <[email protected]>
Acked-by: John Johansen <[email protected]> > --- > binutils/aa_exec.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/binutils/aa_exec.c b/binutils/aa_exec.c > index a6a6008..9bcd62f 100644 > --- a/binutils/aa_exec.c > +++ b/binutils/aa_exec.c > @@ -29,6 +29,7 @@ > > static const char *opt_profile = NULL; > static bool opt_debug = false; > +static bool opt_immediate = false; > static bool opt_verbose = false; > > static void usage(const char *name, bool error) > @@ -49,6 +50,7 @@ static void usage(const char *name, bool error) > "OPTIONS:\n" > " -p PROFILE, --profile=PROFILE PROFILE to > confine <prog> with\n" > " -d, --debug show messages with > debugging information\n" > + " -i, --immediate change profile > immediately instead of at exec\n" > " -v, --verbose show messages > with stats\n" > " -h, --help display this help\n" > "\n"), name); > @@ -110,10 +112,11 @@ static char **parse_args(int argc, char **argv) > {"debug", no_argument, 0, 'd'}, > {"help", no_argument, 0, 'h'}, > {"profile", required_argument, 0, 'p'}, > + {"immediate", no_argument, 0, 'i'}, > {"verbose", no_argument, 0, 'v'}, > }; > > - while ((opt = getopt_long(argc, argv, "+dhp:v", long_opts, NULL)) != > -1) { > + while ((opt = getopt_long(argc, argv, "+dhp:iv", long_opts, NULL)) != > -1) { > switch (opt) { > case 'd': > opt_debug = true; > @@ -124,6 +127,9 @@ static char **parse_args(int argc, char **argv) > case 'p': > opt_profile = optarg; > break; > + case 'i': > + opt_immediate = true; > + break; > case 'v': > opt_verbose = true; > break; > @@ -145,7 +151,14 @@ int main(int argc, char **argv) > > argv = parse_args(argc, argv); > > - if (opt_profile) { > + if (!opt_profile) > + goto exec; > + > + if (opt_immediate) { > + verbose("aa_change_profile(\"%s\")", opt_profile); > + rc = aa_change_profile(opt_profile); > + debug("%d = aa_change_profile(\"%s\")", rc, opt_profile); > + } else { > verbose("aa_change_onexec(\"%s\")", opt_profile); > rc = aa_change_onexec(opt_profile); > debug("%d = aa_change_onexec(\"%s\")", rc, opt_profile); > @@ -161,6 +174,7 @@ int main(int argc, char **argv) > } > } > > +exec: > verbose_print_argv(argv); > execvp(argv[0], argv); > error("Failed to execute \"%s\": %m", argv[0]); > -- AppArmor mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
