Re: [PATCH] kernel/printk/printk.c: check_syslog_permissions() cleanup

From: Andrew Morton
Date: Thu May 14 2015 - 18:02:02 EST


On Sun, 10 May 2015 09:35:53 +0300 Vasily Averin <vvs@xxxxxxxx> wrote:

> Fixes: 637241a900cb ("kmsg: honor dmesg_restrict sysctl on /dev/kmsg")
>
> Final version of patch 637241a900cb ("kmsg: honor dmesg_restrict sysctl
> on /dev/kmsg") lost few hooks. As result security_syslog() is not checked
> inside check_syslog_permissions() if dmesg_restrict is set,
> or it can be called twice in do_syslog().

I'm not seeing how security_syslog() is called twice from do_syslog().
Put more details in the changelog, please.

> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -484,11 +484,11 @@ int check_syslog_permissions(int type, bool from_file)
> * already done the capabilities checks at open time.
> */
> if (from_file && type != SYSLOG_ACTION_OPEN)
> - return 0;
> + goto ok;

This seems wrong - we should only call security_syslog() for opens?

> if (syslog_action_restricted(type)) {
> if (capable(CAP_SYSLOG))
> - return 0;
> + goto ok;
> /*
> * For historical reasons, accept CAP_SYS_ADMIN too, with
> * a warning.
>
> ...
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/