[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080227171158.GB27965@ubuntu>
Date: Wed, 27 Feb 2008 19:11:58 +0200
From: "Ahmed S. Darwish" <darwish.07@...il.com>
To: Paul Moore <paul.moore@...com>
Cc: Chris Wright <chrisw@...s-sol.org>,
Stephen Smalley <sds@...ho.nsa.gov>,
James Morris <jmorris@...ei.org>,
Eric Paris <eparis@...isplace.org>,
Casey Schaufler <casey@...aufler-ca.com>,
David Woodhouse <dwmw2@...radead.org>,
linux-security-module@...r.kernel.org,
LKML <linux-kernel@...r.kernel.org>,
akpm <akpm@...ux-foundation.org>
Subject: Re: [PATCH -mm 3/4] Audit: start not to use SELinux exported
symbols
Hi!,
On Wed, Feb 27, 2008 at 11:00:57AM -0500, Paul Moore wrote:
> On Tuesday 26 February 2008 6:28:08 pm Ahmed S. Darwish wrote:
...
> >
> > Signed-off-by: Casey Schaufler <casey@...aufler-ca.com>
> > Signed-off-by: Ahmed S. Darwish <darwish.07@...il.com>
>
> In the future, such patches should probably also be CC'd to the audit
> list.
>
No problem.
> > ---
> >
> > include/linux/security.h | 5 ++++-
> > kernel/audit.c | 14 +++++++-------
> > kernel/auditfilter.c | 5 +++--
> > kernel/auditsc.c | 37
> > ++++++++++++++++++------------------- security/dummy.c | 4
> > +++-
> > 6 files changed, 36 insertions(+), 32 deletions(-)
> >
> > diff --git a/include/linux/security.h b/include/linux/security.h
> > index a7fb136..35c98f0 100644
> > --- a/include/linux/security.h
> > +++ b/include/linux/security.h
> > @@ -621,6 +621,7 @@ struct request_sock;
> > * @task_getsecid:
> > * Retrieve the security identifier of the process @p.
> > * @p contains the task_struct for the process and place is into
> > @secid.
> > + * In case of failure, @secid will be set to zero
>
> This is a nit, but you used spaces between the "*" and "In case ..."
> where the rest of the files uses tabs. When in doubt, try and stick
> with whatever formatting the rest of the source file uses.
>
I'll find a way to teach emacs how to print a tab ;). Will do.
> > diff --git a/kernel/audit.c b/kernel/audit.c
> > index 8316a88..2bd4124 100644
> > --- a/kernel/audit.c
> > +++ b/kernel/audit.c
> > @@ -259,13 +259,13 @@ static int audit_log_config_change(char
> > *function_name, int new, int old, char *ctx = NULL;
> > u32 len;
> >
> > - rc = selinux_sid_to_string(sid, &ctx, &len);
> > + rc = security_secid_to_secctx(sid, &ctx, &len);
> > if (rc) {
> > audit_log_format(ab, " sid=%u", sid);
> > allow_changes = 0; /* Something weird, deny request */
> > } else {
> > audit_log_format(ab, " subj=%s", ctx);
> > - kfree(ctx);
> > + security_release_secctx(ctx, len);
> > }
> > }
> > audit_log_format(ab, " res=%d", allow_changes);
> > @@ -543,12 +543,12 @@ static int audit_log_common_recv_msg(struct
> > audit_buffer **ab, u16 msg_type, audit_log_format(*ab, "user pid=%d
> > uid=%u auid=%u",
> > pid, uid, auid);
> > if (sid) {
> > - rc = selinux_sid_to_string(sid, &ctx, &len);
> > + rc = security_secid_to_secctx(sid, &ctx, &len);
> > if (rc)
> > audit_log_format(*ab, " ssid=%u", sid);
> > else
> > audit_log_format(*ab, " subj=%s", ctx);
> > - kfree(ctx);
> > + security_release_secctx(ctx, len);
> > }
> >
> > return rc;
>
> This next part isn't your fault, but you're touching the code so I'm
> going to point it out and suggest you fix it while you are at it :)
>
> If you look at how kfree()/security_release_secctx() is called in the
> above two functions you notice how it is inconsistent: it is only
> called on success in the first case, but called regardless in the
> second. Make this consistent, preferably using the approach taken in
> the first case (only call it on success).
>
My pleasure. You'll find them consistent in the next send.
[Same release_ctx() consistency point]
...
>
> > @@ -951,7 +951,7 @@ static int audit_log_pid_context(struct
> > audit_context *context, pid_t pid,
> >
> > audit_log_format(ab, "opid=%d oauid=%d ouid=%d oses=%d", pid, auid,
> > uid, sessionid);
> > - if (selinux_sid_to_string(sid, &s, &len)) {
> > + if (security_secid_to_secctx(sid, &s, &len)) {
> > audit_log_format(ab, " obj=(none)");
> > rc = 1;
> > } else
>
> You forgot to convert the matching kfree() call to a
> security_release_secctx() call. Also it might be nice to change the
> context variable name from "s" to "ctx", but some ornery folks might
> whine about that ...
>
Nice spot, will do. 's' will be changed too, context is already
used as 'ctx' in the whole file anyway.
[...]
>
> Only call the release routine on success.
>
[...]
>
> Here too.
>
[...]
>
> One last time.
>
Thanks a lot for such a deep review :). I'll modify spotted problems
as suggested, reorder the patch in a non compilation-breaking order,
and keep you informed.
Modified patches will be sent with the new ones that will complete
the separation not to add too much noise in LKML.
Warm regards
--
"Better to light a candle, than curse the darkness"
Ahmed S. Darwish
Homepage: http://darwish.07.googlepages.com
Blog: http://darwish-07.blogspot.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists