Re: [PATCH 2/8] signal: make kill_as_cred_perm() return bool

From: Al Viro
Date: Mon May 28 2018 - 10:10:08 EST


On Mon, May 28, 2018 at 03:49:10PM +0200, Christian Brauner wrote:
> kill_as_cred_perm() already behaves like a boolean function. Let's actually
> declare it as such too.
>
> Signed-off-by: Christian Brauner <christian@xxxxxxxxxx>
> ---
> kernel/signal.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/signal.c b/kernel/signal.c
> index c756008d589e..81be01d193f4 100644
> --- a/kernel/signal.c
> +++ b/kernel/signal.c
> @@ -1349,14 +1349,15 @@ static int kill_proc_info(int sig, struct siginfo *info, pid_t pid)
> return error;
> }
>
> -static int kill_as_cred_perm(const struct cred *cred,
> +static bool kill_as_cred_perm(const struct cred *cred,
> struct task_struct *target)
> {
> const struct cred *pcred = __task_cred(target);
> if (!uid_eq(cred->euid, pcred->suid) && !uid_eq(cred->euid, pcred->uid) &&
> !uid_eq(cred->uid, pcred->suid) && !uid_eq(cred->uid, pcred->uid))
> - return 0;
> - return 1;
> + return false;
> +
> + return true;

Ugh...
if (!foo && !bar && !baz && !quux)
return false;
return true;

is a bloody odd way to spell

return foo || bar || baz || quux;