From: "Serge E. Hallyn" <serue@us.ibm.com>
To: "Andrew G. Morgan" <morgan@kernel.org>
Cc: "Serge E. Hallyn" <serue@us.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Dmitry Adamushko <dmitry.adamushko@gmail.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] bugfix: was Re: [ linus-git ] prctl(PR_SET_KEEPCAPS, ...) is broken for some configs, e.g. CONFIG_SECURITY_SELINUX
Date: Tue, 10 Jun 2008 14:12:41 -0500 [thread overview]
Message-ID: <20080610191241.GA17311@us.ibm.com> (raw)
In-Reply-To: <484E0280.2050305@kernel.org>
Quoting Andrew G. Morgan (morgan@kernel.org):
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I agree. Short term, here is a patch to add dummy support for KEEPCAPS.
>
> Cheers
>
> Andrew
>
> Serge E. Hallyn wrote:
> |>> I fear that nothing will happen, and we'll end up wasting a lot of
> |> peoples' time sending hey-why-did-my-dhcp-break reports.
> |
> | If we decide to get rid of dummy long-term, then it's far less
> | distasteful to have it lie and claim the keepcaps worked in the
> | meantime.
> |
> | So for 2.6.26 we could have dummy lie, then plan to make capabilities
> | the default for 2.6.27?
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.6 (GNU/Linux)
>
> iD8DBQFITgKA+bHCR3gb8jsRAiQYAJ47VnlBq2GSvLQv40tymjybLhNAtQCgya8G
> YZQN/5w1uq+X2MYv1x4T4D4=
> =NhwX
> -----END PGP SIGNATURE-----
> From be19a4716c97c5aaf4c9721eeccfab2d44897ce2 Mon Sep 17 00:00:00 2001
> From: Andrew G. Morgan <morgan@kernel.org>
> Date: Mon, 9 Jun 2008 21:22:18 -0700
> Subject: [PATCH] Add (back) dummy support for KEEPCAPS.
>
> See: http://bugzilla.kernel.org/show_bug.cgi?id=10748
>
> Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
Thanks, Andrew. Just one question inline. Nevertheless,
Acked-by: Serge Hallyn <serue@us.ibm.com>
Dmitry, does this fix the problem for you?
(Not sure why I'm feeling queasy about this given that
find . -name "*.c" -exec "grep" "-Hn" "issecure" "{}" \;
returns only hits in security/commoncap.c...)
> ---
> security/dummy.c | 24 +++++++++++++++++++++++-
> 1 files changed, 23 insertions(+), 1 deletions(-)
>
> diff --git a/security/dummy.c b/security/dummy.c
> index f50c6c3..b891688 100644
> --- a/security/dummy.c
> +++ b/security/dummy.c
> @@ -27,6 +27,8 @@
> #include <linux/hugetlb.h>
> #include <linux/ptrace.h>
> #include <linux/file.h>
> +#include <linux/prctl.h>
> +#include <linux/securebits.h>
>
> static int dummy_ptrace (struct task_struct *parent, struct task_struct *child)
> {
> @@ -607,7 +609,27 @@ static int dummy_task_kill (struct task_struct *p, struct siginfo *info,
> static int dummy_task_prctl (int option, unsigned long arg2, unsigned long arg3,
> unsigned long arg4, unsigned long arg5, long *rc_p)
> {
> - return 0;
> + switch (option) {
> + case PR_CAPBSET_READ:
> + *rc_p = (cap_valid(arg2) ? 1 : -EINVAL);
> + break;
> + case PR_GET_KEEPCAPS:
> + *rc_p = issecure(SECURE_KEEP_CAPS);
> + break;
> + case PR_SET_KEEPCAPS:
> + if (arg2 > 1)
> + *rc_p = -EINVAL;
> + else if (arg2)
> + current->securebits |= issecure_mask(SECURE_KEEP_CAPS);
> + else
> + current->securebits &=
> + ~issecure_mask(SECURE_KEEP_CAPS);
In these last two conditions, don't you need to set *rc_p?
Oh, or my kernel tree may be out of date, as I seem to recall a recent
patch initializing error to 0 in sys_prctl(), so this wouldn't
technically be a problem? Still would seem correct...
> + break;
> + default:
> + return 0;
> + }
> +
> + return 1;
> }
>
> static void dummy_task_reparent_to_init (struct task_struct *p)
> --
> 1.5.3.7
>
next prev parent reply other threads:[~2008-06-10 19:12 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-08 13:38 [ linus-git ] prctl(PR_SET_KEEPCAPS, ...) is broken for some configs, e.g. CONFIG_SECURITY_SELINUX Dmitry Adamushko
2008-06-08 15:10 ` Andrew Morgan
2008-06-08 18:06 ` Andrew Morton
2008-06-08 22:34 ` Andrew Morgan
2008-06-08 23:39 ` Andrew Morton
2008-06-09 17:17 ` Serge E. Hallyn
2008-06-10 4:26 ` [PATCH] bugfix: was " Andrew G. Morgan
2008-06-10 5:21 ` Andrew Morton
2008-06-10 19:12 ` Serge E. Hallyn [this message]
2008-06-11 0:39 ` Andrew G. Morgan
2008-06-10 19:14 ` Chris Wright
2008-06-11 0:37 ` Andrew G. Morgan
2008-06-11 14:21 ` Dmitry Adamushko
2008-06-10 16:12 ` Chris Wright
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080610191241.GA17311@us.ibm.com \
--to=serue@us.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=dmitry.adamushko@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=morgan@kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.