lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <x49a7ssvi8p.fsf@segfault.boston.devel.redhat.com>
Date:   Mon, 21 May 2018 16:58:14 -0400
From:   Jeff Moyer <jmoyer@...hat.com>
To:     adam.manzanares@....com
Cc:     viro@...iv.linux.org.uk, linux-fsdevel@...r.kernel.org,
        axboe@...nel.dk, bcrl@...ck.org, tglx@...utronix.de,
        mingo@...nel.org, pombredanne@...b.com,
        kstewart@...uxfoundation.org, gregkh@...uxfoundation.org,
        bigeasy@...utronix.de, jack@...e.cz, darrick.wong@...cle.com,
        rgoldwyn@...e.com, linux-block@...r.kernel.org,
        linux-kernel@...r.kernel.org, linux-aio@...ck.org,
        linux-api@...r.kernel.org, hch@...radead.org
Subject: Re: [PATCH v5 1/5] block: add ioprio_check_cap function

adam.manzanares@....com writes:

> From: Adam Manzanares <adam.manzanares@....com>
>
> Aio per command iopriority support introduces a second interface between
> userland and the kernel capable of passing iopriority. The aio interface also
> needs the ability to verify that the submitting context has sufficient
> priviledges to submit IOPRIO_RT commands. This patch creates the
> ioprio_check_cap function to be used by the ioprio_set system call and also by
> the aio interface.
>
> Signed-off-by: Adam Manzanares <adam.manzanares@....com>
> Reviewed-by: Christoph Hellwig <hch@....de>

Reviewed-by: Jeff Moyer <jmoyer@...hat.com>


> ---
>  block/ioprio.c         | 22 ++++++++++++++++------
>  include/linux/ioprio.h |  2 ++
>  2 files changed, 18 insertions(+), 6 deletions(-)
>
> diff --git a/block/ioprio.c b/block/ioprio.c
> index 6f5d0b6625e3..f9821080c92c 100644
> --- a/block/ioprio.c
> +++ b/block/ioprio.c
> @@ -61,15 +61,10 @@ int set_task_ioprio(struct task_struct *task, int ioprio)
>  }
>  EXPORT_SYMBOL_GPL(set_task_ioprio);
>  
> -SYSCALL_DEFINE3(ioprio_set, int, which, int, who, int, ioprio)
> +int ioprio_check_cap(int ioprio)
>  {
>  	int class = IOPRIO_PRIO_CLASS(ioprio);
>  	int data = IOPRIO_PRIO_DATA(ioprio);
> -	struct task_struct *p, *g;
> -	struct user_struct *user;
> -	struct pid *pgrp;
> -	kuid_t uid;
> -	int ret;
>  
>  	switch (class) {
>  		case IOPRIO_CLASS_RT:
> @@ -92,6 +87,21 @@ SYSCALL_DEFINE3(ioprio_set, int, which, int, who, int, ioprio)
>  			return -EINVAL;
>  	}
>  
> +	return 0;
> +}
> +
> +SYSCALL_DEFINE3(ioprio_set, int, which, int, who, int, ioprio)
> +{
> +	struct task_struct *p, *g;
> +	struct user_struct *user;
> +	struct pid *pgrp;
> +	kuid_t uid;
> +	int ret;
> +
> +	ret = ioprio_check_cap(ioprio);
> +	if (ret)
> +		return ret;
> +
>  	ret = -ESRCH;
>  	rcu_read_lock();
>  	switch (which) {
> diff --git a/include/linux/ioprio.h b/include/linux/ioprio.h
> index 627efac73e6d..4a28cec49ec3 100644
> --- a/include/linux/ioprio.h
> +++ b/include/linux/ioprio.h
> @@ -77,4 +77,6 @@ extern int ioprio_best(unsigned short aprio, unsigned short bprio);
>  
>  extern int set_task_ioprio(struct task_struct *task, int ioprio);
>  
> +extern int ioprio_check_cap(int ioprio);
> +
>  #endif

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ