diff mbox series

[v2] wifi: cfg80211: replace strlcpy() with strlscpy()

Message ID 20230614134552.2108471-1-azeemshaikh38@gmail.com (mailing list archive)
State Not Applicable
Delegated to: Johannes Berg
Headers show
Series [v2] wifi: cfg80211: replace strlcpy() with strlscpy() | expand

Commit Message

Azeem Shaikh June 14, 2023, 1:45 p.m. UTC
strlcpy() reads the entire source buffer first.
This read may exceed the destination size limit.
This is both inefficient and can lead to linear read
overflows if a source string is not NUL-terminated [1].
In an effort to remove strlcpy() completely [2], replace
strlcpy() here with strscpy().

Direct replacement is safe here since WIPHY_ASSIGN is only used by
TRACE macros and the return values are ignored.

[1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strlcpy
[2] https://github.com/KSPP/linux/issues/89

Signed-off-by: Azeem Shaikh <azeemshaikh38@gmail.com>
---
v1: https://lore.kernel.org/all/20230612232301.2572316-1-azeemshaikh38@gmail.com/

Changes from v1 - updated patch title.

 net/wireless/trace.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Azeem Shaikh June 14, 2023, 1:47 p.m. UTC | #1
Please ignore this patch. I made a typo in the title. Resending.

On Wed, Jun 14, 2023 at 9:46 AM Azeem Shaikh <azeemshaikh38@gmail.com> wrote:
>
> strlcpy() reads the entire source buffer first.
> This read may exceed the destination size limit.
> This is both inefficient and can lead to linear read
> overflows if a source string is not NUL-terminated [1].
> In an effort to remove strlcpy() completely [2], replace
> strlcpy() here with strscpy().
>
> Direct replacement is safe here since WIPHY_ASSIGN is only used by
> TRACE macros and the return values are ignored.
>
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strlcpy
> [2] https://github.com/KSPP/linux/issues/89
>
> Signed-off-by: Azeem Shaikh <azeemshaikh38@gmail.com>
> ---
> v1: https://lore.kernel.org/all/20230612232301.2572316-1-azeemshaikh38@gmail.com/
>
> Changes from v1 - updated patch title.
>
>  net/wireless/trace.h |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/wireless/trace.h b/net/wireless/trace.h
> index 716a1fa70069..a00da3ebfed5 100644
> --- a/net/wireless/trace.h
> +++ b/net/wireless/trace.h
> @@ -22,7 +22,7 @@
>
>  #define MAXNAME                32
>  #define WIPHY_ENTRY    __array(char, wiphy_name, 32)
> -#define WIPHY_ASSIGN   strlcpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME)
> +#define WIPHY_ASSIGN   strscpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME)
>  #define WIPHY_PR_FMT   "%s"
>  #define WIPHY_PR_ARG   __entry->wiphy_name
>
> --
> 2.41.0.162.gfafddb0af9-goog
>
>
diff mbox series

Patch

diff --git a/net/wireless/trace.h b/net/wireless/trace.h
index 716a1fa70069..a00da3ebfed5 100644
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -22,7 +22,7 @@ 
 
 #define MAXNAME		32
 #define WIPHY_ENTRY	__array(char, wiphy_name, 32)
-#define WIPHY_ASSIGN	strlcpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME)
+#define WIPHY_ASSIGN	strscpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME)
 #define WIPHY_PR_FMT	"%s"
 #define WIPHY_PR_ARG	__entry->wiphy_name