All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dimitri Sivanich <sivanich@sgi.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: Re: [patch 2/2] gru: cleanup gru_dump_context() a little
Date: Thu, 30 Jan 2014 14:24:30 +0000	[thread overview]
Message-ID: <20140130142430.GA16259@sgi.com> (raw)
In-Reply-To: <20140130121048.GA17321@elgon.mountain>

Acked-by: Dimitri Sivanich <sivanich@sgi.com>

On Thu, Jan 30, 2014 at 03:10:48PM +0300, Dan Carpenter wrote:
> "ret" is zero here so we can remove the "!ret" part of the condition.
> "uhdr" is alread a __user pointer so we can remove the cast.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
> Btw, speaking of __user pointers there are some places where we
> dereference them in this file.  It's not a security problem because we
> have already used copy_to_user() to successfully write to the pointer at
> point.  But if you have something like PAX which puts user pointers and
> kernel pointers in a separate address space then this will cause
> problems.
> 
> Run sparse to see the issue.
> 
> diff --git a/drivers/misc/sgi-gru/grukdump.c b/drivers/misc/sgi-gru/grukdump.c
> index 2bef3f76032a..a3700a56b8ff 100644
> --- a/drivers/misc/sgi-gru/grukdump.c
> +++ b/drivers/misc/sgi-gru/grukdump.c
> @@ -178,10 +178,10 @@ static int gru_dump_context(struct gru_state *gru, int ctxnum,
>  	hdr.cbrcnt = cbrcnt;
>  	hdr.dsrcnt = dsrcnt;
>  	hdr.cch_locked = cch_locked;
> -	if (!ret && copy_to_user((void __user *)uhdr, &hdr, sizeof(hdr)))
> -		ret = -EFAULT;
> +	if (copy_to_user(uhdr, &hdr, sizeof(hdr)))
> +		return -EFAULT;
>  
> -	return ret ? ret : bytes;
> +	return bytes;
>  }
>  
>  int gru_dump_chiplet_request(unsigned long arg)

WARNING: multiple messages have this Message-ID (diff)
From: Dimitri Sivanich <sivanich@sgi.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: Re: [patch 2/2] gru: cleanup gru_dump_context() a little
Date: Thu, 30 Jan 2014 08:24:30 -0600	[thread overview]
Message-ID: <20140130142430.GA16259@sgi.com> (raw)
In-Reply-To: <20140130121048.GA17321@elgon.mountain>

Acked-by: Dimitri Sivanich <sivanich@sgi.com>

On Thu, Jan 30, 2014 at 03:10:48PM +0300, Dan Carpenter wrote:
> "ret" is zero here so we can remove the "!ret" part of the condition.
> "uhdr" is alread a __user pointer so we can remove the cast.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
> Btw, speaking of __user pointers there are some places where we
> dereference them in this file.  It's not a security problem because we
> have already used copy_to_user() to successfully write to the pointer at
> point.  But if you have something like PAX which puts user pointers and
> kernel pointers in a separate address space then this will cause
> problems.
> 
> Run sparse to see the issue.
> 
> diff --git a/drivers/misc/sgi-gru/grukdump.c b/drivers/misc/sgi-gru/grukdump.c
> index 2bef3f76032a..a3700a56b8ff 100644
> --- a/drivers/misc/sgi-gru/grukdump.c
> +++ b/drivers/misc/sgi-gru/grukdump.c
> @@ -178,10 +178,10 @@ static int gru_dump_context(struct gru_state *gru, int ctxnum,
>  	hdr.cbrcnt = cbrcnt;
>  	hdr.dsrcnt = dsrcnt;
>  	hdr.cch_locked = cch_locked;
> -	if (!ret && copy_to_user((void __user *)uhdr, &hdr, sizeof(hdr)))
> -		ret = -EFAULT;
> +	if (copy_to_user(uhdr, &hdr, sizeof(hdr)))
> +		return -EFAULT;
>  
> -	return ret ? ret : bytes;
> +	return bytes;
>  }
>  
>  int gru_dump_chiplet_request(unsigned long arg)

  reply	other threads:[~2014-01-30 14:24 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-30 12:10 [patch 2/2] gru: cleanup gru_dump_context() a little Dan Carpenter
2014-01-30 12:10 ` Dan Carpenter
2014-01-30 14:24 ` Dimitri Sivanich [this message]
2014-01-30 14:24   ` Dimitri Sivanich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140130142430.GA16259@sgi.com \
    --to=sivanich@sgi.com \
    --cc=dan.carpenter@oracle.com \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.