All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Norris <briannorris@chromium.org>
To: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
	David Lin <yu-hao.lin@nxp.com>,
	Dmitry Antipov <dmantipov@yandex.ru>,
	Kalle Valo <kvalo@kernel.org>,
	Francesco Dolcini <francesco@dolcini.it>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Kees Cook <kees@kernel.org>,
	"Gustavo A . R . Silva" <gustavoars@kernel.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Johannes Berg <johannes.berg@intel.com>
Subject: Re: [PATCH] wifi: mwifiex: Fix memcpy() field-spanning write warning in mwifiex_config_scan()
Date: Fri, 4 Oct 2024 16:24:51 -0700	[thread overview]
Message-ID: <ZwB5Q4_P42DVMr04@google.com> (raw)
In-Reply-To: <20240917150938.843879-1-alpernebiyasak@gmail.com>

On Tue, Sep 17, 2024 at 06:08:41PM +0300, Alper Nebi Yasak wrote:
> Replace one-element array with a flexible-array member in `struct
> mwifiex_ie_types_wildcard_ssid_params` to fix the following warning
> on a MT8173 Chromebook (mt8173-elm-hana):
> 
> [  356.775250] ------------[ cut here ]------------
> [  356.784543] memcpy: detected field-spanning write (size 6) of single field "wildcard_ssid_tlv->ssid" at drivers/net/wireless/marvell/mwifiex/scan.c:904 (size 1)
> [  356.813403] WARNING: CPU: 3 PID: 742 at drivers/net/wireless/marvell/mwifiex/scan.c:904 mwifiex_scan_networks+0x4fc/0xf28 [mwifiex]
> 
> The "(size 6)" above is exactly the length of the SSID of the network
> this device was connected to. The source of the warning looks like:
> 
>     ssid_len = user_scan_in->ssid_list[i].ssid_len;
>     [...]
>     memcpy(wildcard_ssid_tlv->ssid,
>            user_scan_in->ssid_list[i].ssid, ssid_len);
> 
> Also adjust a #define that uses sizeof() on this struct to keep the
> value same as before.
> 
> Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
> ---
> I found these relevant patches that modify other such arrays, where the
> second one removes a -1 from some sizeof() calculation:
> 
> https://lore.kernel.org/lkml/Y9xkECG3uTZ6T1dN@work/T/#u
> https://lore.kernel.org/lkml/ZsZa5xRcsLq9D+RX@elsanto/T/#u
> 
> So I think we need the +1 to keep things same. But it appears to work
> fine without it, so I'm not sure. Maybe it should've had a -1 before
> that I would remove with this?

Thanks for the investigation and patch! I believe I agree with the other
comments, that then "+ 1" isn't necessary. It's just a wasteful extra
byte of allocation. Can you send a v2? (Bonus: with the suggested Fixes
tag. Double bonus if you test KASAN with __counted_by, for a second
patch.)

Thanks,
Brian

      parent reply	other threads:[~2024-10-04 23:24 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-17 15:08 [PATCH] wifi: mwifiex: Fix memcpy() field-spanning write warning in mwifiex_config_scan() Alper Nebi Yasak
2024-09-17 16:30 ` Andy Shevchenko
2024-09-17 17:01   ` Dmitry Antipov
2024-09-17 18:10 ` Jeff Johnson
2024-09-17 18:21   ` Gustavo A. R. Silva
2024-10-04 23:24 ` Brian Norris [this message]

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=ZwB5Q4_P42DVMr04@google.com \
    --to=briannorris@chromium.org \
    --cc=alpernebiyasak@gmail.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=dmantipov@yandex.ru \
    --cc=francesco@dolcini.it \
    --cc=gustavoars@kernel.org \
    --cc=johannes.berg@intel.com \
    --cc=kees@kernel.org \
    --cc=kvalo@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=yu-hao.lin@nxp.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.