summaryrefslogtreecommitdiffstats
path: root/sys-utils/setpriv.c
diff options
context:
space:
mode:
authorAndy Lutomirski2014-01-24 21:02:59 +0100
committerKarel Zak2014-02-10 18:38:35 +0100
commitd359c62ce9bbbb687158f86f8cc18cc51aed38c9 (patch)
tree50bacc54fb732c31391f24996fc036ec2427c201 /sys-utils/setpriv.c
parentlast: make session gone determination more robust (diff)
downloadkernel-qcow2-util-linux-d359c62ce9bbbb687158f86f8cc18cc51aed38c9.tar.gz
kernel-qcow2-util-linux-d359c62ce9bbbb687158f86f8cc18cc51aed38c9.tar.xz
kernel-qcow2-util-linux-d359c62ce9bbbb687158f86f8cc18cc51aed38c9.zip
setpriv: Fix --apparmor-profile
There were two bugs. First, trying to access /proc/self/attr/exec with O_CREAT | O_EXCL has no chance of working. Second, it turns out that the correct command to send is "exec", not "changeprofile". Of course, there was no way to know this until: commit 3eea57c26e49a5add4c053a031cc2a1977b7c48e Author: John Johansen <john.johansen@canonical.com> Date: Wed Feb 27 03:44:40 2013 -0800 apparmor: fix setprocattr arg processing for onexec Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Diffstat (limited to 'sys-utils/setpriv.c')
-rw-r--r--sys-utils/setpriv.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys-utils/setpriv.c b/sys-utils/setpriv.c
index a17f92509..7bea62649 100644
--- a/sys-utils/setpriv.c
+++ b/sys-utils/setpriv.c
@@ -538,12 +538,12 @@ static void do_apparmor_profile(const char *label)
if (access(_PATH_SYS_APPARMOR, F_OK) != 0)
errx(SETPRIV_EXIT_PRIVERR, _("AppArmor is not running"));
- f = fopen(_PATH_PROC_ATTR_EXEC, "wx");
+ f = fopen(_PATH_PROC_ATTR_EXEC, "r+");
if (!f)
err(SETPRIV_EXIT_PRIVERR,
_("cannot open %s"), _PATH_PROC_ATTR_EXEC);
- fprintf(f, "changeprofile %s", label);
+ fprintf(f, "exec %s", label);
if (close_stream(f) != 0)
err(SETPRIV_EXIT_PRIVERR,