All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@kernel.org>
To: Dan Carpenter <dan.carpenter@linaro.org>
Cc: Dan Williams <dan.j.williams@intel.com>,
	Vishal Verma <vishal.l.verma@intel.com>,
	Dave Jiang <dave.jiang@intel.com>,
	Ira Weiny <ira.weiny@intel.com>,
	nvdimm@lists.linux.dev, linux-kernel@vger.kernel.org,
	kernel-janitors@vger.kernel.org
Subject: Re: [PATCH next v2] nvdimm: Prevent integer overflow in ramdax_get_config_data()
Date: Wed, 26 Nov 2025 15:21:46 +0200	[thread overview]
Message-ID: <aSb-6ujzwZYtNFpf@kernel.org> (raw)
In-Reply-To: <aSbuiYCznEIZDa02@stanley.mountain>

On Wed, Nov 26, 2025 at 03:11:53PM +0300, Dan Carpenter wrote:
> The "cmd->in_offset" variable comes from the user via the __nd_ioctl()
> function.  The problem is that the "cmd->in_offset + cmd->in_length"
> addition could have an integer wrapping issue if cmd->in_offset is close
> to UINT_MAX .  Both "cmd->in_offset" and "cmd->in_length" are u32
> variables.
> 
> Fixes: 43bc0aa19a21 ("nvdimm: allow exposing RAM carveouts as NVDIMM DIMM devices")
> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>

Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>

> ---
> v2: Ira Weiny pointed out that ramdax_set_config_data() needs to be
>     fixed as well.
> 
>  drivers/nvdimm/ramdax.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/nvdimm/ramdax.c b/drivers/nvdimm/ramdax.c
> index 63cf05791829..954cb7919807 100644
> --- a/drivers/nvdimm/ramdax.c
> +++ b/drivers/nvdimm/ramdax.c
> @@ -143,7 +143,7 @@ static int ramdax_get_config_data(struct nvdimm *nvdimm, int buf_len,
>  		return -EINVAL;
>  	if (struct_size(cmd, out_buf, cmd->in_length) > buf_len)
>  		return -EINVAL;
> -	if (cmd->in_offset + cmd->in_length > LABEL_AREA_SIZE)
> +	if (size_add(cmd->in_offset, cmd->in_length) > LABEL_AREA_SIZE)
>  		return -EINVAL;
>  
>  	memcpy(cmd->out_buf, dimm->label_area + cmd->in_offset, cmd->in_length);
> @@ -160,7 +160,7 @@ static int ramdax_set_config_data(struct nvdimm *nvdimm, int buf_len,
>  		return -EINVAL;
>  	if (struct_size(cmd, in_buf, cmd->in_length) > buf_len)
>  		return -EINVAL;
> -	if (cmd->in_offset + cmd->in_length > LABEL_AREA_SIZE)
> +	if (size_add(cmd->in_offset, cmd->in_length) > LABEL_AREA_SIZE)
>  		return -EINVAL;
>  
>  	memcpy(dimm->label_area + cmd->in_offset, cmd->in_buf, cmd->in_length);
> -- 
> 2.51.0
> 

-- 
Sincerely yours,
Mike.

  reply	other threads:[~2025-11-26 13:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-26 12:11 [PATCH next v2] nvdimm: Prevent integer overflow in ramdax_get_config_data() Dan Carpenter
2025-11-26 13:21 ` Mike Rapoport [this message]
2025-11-26 16:59 ` Ira Weiny

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=aSb-6ujzwZYtNFpf@kernel.org \
    --to=rppt@kernel.org \
    --cc=dan.carpenter@linaro.org \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=ira.weiny@intel.com \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nvdimm@lists.linux.dev \
    --cc=vishal.l.verma@intel.com \
    /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.