Messages in this thread | | | Date | Thu, 14 Sep 2023 21:00:57 -0700 | From | Kees Cook <> | Subject | Re: [PATCH] firmware: tegra: bpmp: refactor deprecated strncpy |
| |
On Wed, Sep 13, 2023 at 07:38:44PM +0000, Justin Stitt wrote: > `strncpy` is deprecated for use on NUL-terminated destination strings [1]. > > We should prefer more robust and less ambiguous string interfaces. > > It seems like the filename stored at `namevirt` is expected to be > NUL-terminated.
This took me a bit to establish, but yes: buf[256] is used to store filename, so it'll always be %NUL-terminated with the 256 bytes, which is the same size used to allocate virtname, which means it will always be %NUL-terminated.
> > A suitable replacement is `strscpy_pad` due to the fact that it > guarantees NUL-termination on the destination buffer whilst maintaining > the NUL-padding behavior that strncpy provides. > > Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings [1] > Link: https://github.com/KSPP/linux/issues/90 > Cc: linux-hardening@vger.kernel.org > Signed-off-by: Justin Stitt <justinstitt@google.com>
This one looks weird because namevirt seems unused, but I assume there's some kind of DMA side-effect happening somewhere?
But, yes, after digging around here, I think this all looks right.
Reviewed-by: Kees Cook <keescook@chromium.org>
-- Kees Cook
| |