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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 31 May 2013 15:53:51 -0700
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	liguang <lig.fnst@...fujitsu.com>
Cc:	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
	David Howells <dhowells@...hat.com>,
	Thomas Gleixner <tglx@...utronix.de>,
	Michael Kerrisk <mtk.manpages@...il.com>,
	Dave Jones <davej@...hat.com>,
	Kees Cook <keescook@...omium.org>,
	Cyrill Gorcunov <gorcunov@...nvz.org>,
	Al Viro <viro@...iv.linux.org.uk>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/4] sys: remove unnecesscary parameter of set_one_prio

On Thu, 30 May 2013 15:58:03 +0800 liguang <lig.fnst@...fujitsu.com> wrote:

> Signed-off-by: liguang <lig.fnst@...fujitsu.com>
> ---
>  kernel/sys.c |   12 +++++-------
>  1 files changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/kernel/sys.c b/kernel/sys.c
> index b95d3c7..07c6177 100644
> --- a/kernel/sys.c
> +++ b/kernel/sys.c
> @@ -151,9 +151,9 @@ static bool set_one_prio_perm(struct task_struct *p)
>   * set the priority of a task
>   * - the caller must hold the RCU read lock
>   */
> -static int set_one_prio(struct task_struct *p, int niceval, int error)
> +static int set_one_prio(struct task_struct *p, int niceval)
>  {
> -	int no_nice;
> +	int no_nice, error = 0;
>  
>  	if (!set_one_prio_perm(p)) {
>  		error = -EPERM;
> @@ -168,8 +168,6 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
>  		error = no_nice;
>  		goto out;
>  	}
> -	if (error == -ESRCH)
> -		error = 0;
>  	set_user_nice(p, niceval);
>  out:
>  	return error;
> @@ -203,7 +201,7 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval)
>  			else
>  				p = current;
>  			if (p)
> -				error = set_one_prio(p, niceval, error);
> +				error = set_one_prio(p, niceval);
>  			break;
>  		case PRIO_PGRP:
>  			if (who)
> @@ -211,7 +209,7 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval)
>  			else
>  				pgrp = task_pgrp(current);
>  			do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
> -				error = set_one_prio(p, niceval, error);
> +				error = set_one_prio(p, niceval);
>  			} while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
>  			break;
>  		case PRIO_USER:
> @@ -225,7 +223,7 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval)
>  
>  			do_each_thread(g, p) {
>  				if (uid_eq(task_uid(p), uid))
> -					error = set_one_prio(p, niceval, error);
> +					error = set_one_prio(p, niceval);
>  			} while_each_thread(g, p);
>  			if (!uid_eq(uid, cred->uid))
>  				free_uid(user);		/* For find_user() */

Yes, that apepars to be an evuivalent change, but only because
security_task_setnice() cannot return -ESRCH.  The existing code is
rather awkward.

A couple of changes:

From: Andrew Morton <akpm@...ux-foundation.org>
Subject: kernel-sysc-remove-unnecessary-parameter-of-set_one_prio-fix

clean up definitions, remove unneeded assignment

Cc: liguang <lig.fnst@...fujitsu.com>
Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
---

 kernel/sys.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff -puN kernel/sys.c~kernel-sysc-remove-unnecessary-parameter-of-set_one_prio-fix kernel/sys.c
--- a/kernel/sys.c~kernel-sysc-remove-unnecessary-parameter-of-set_one_prio-fix
+++ a/kernel/sys.c
@@ -153,7 +153,8 @@ static bool set_one_prio_perm(struct tas
  */
 static int set_one_prio(struct task_struct *p, int niceval)
 {
-	int no_nice, error = 0;
+	int no_nice;
+	int error = 0;
 
 	if (!set_one_prio_perm(p)) {
 		error = -EPERM;
@@ -186,7 +187,6 @@ SYSCALL_DEFINE3(setpriority, int, which,
 		goto out;
 
 	/* normalize: avoid signed division (rounding problems) */
-	error = -ESRCH;
 	if (niceval < -20)
 		niceval = -20;
 	if (niceval > 19)
_

--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ