From 6b2175ccecaed99489ce0616115f09215a5c934c Mon Sep 17 00:00:00 2001 From: Ajith P V Date: Sat, 29 Aug 2026 18:49:44 +0200 Subject: [PATCH] accessibility: speakup: refactor deprecated strcpy strcpy() is deprecated, use strscpy() instead. As strcpy() performs no bounds checking on the destination buffer. This could result in buffer overflow. The safe replacement is strscpy() [1][2]. Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strcpy [1] Link: https://github.com/KSPP/linux/issues/88 [2] Signed-off-by: Ajith P V Reviewed-by: Samuel thibault Link: https://patch.msgid.link/20260829164945.2691317-2-samuel.thibault@ens-lyon.org Signed-off-by: Greg Kroah-Hartman --- drivers/accessibility/speakup/varhandlers.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/accessibility/speakup/varhandlers.c b/drivers/accessibility/speakup/varhandlers.c index 462f8d879053..c6d3b4cc1af8 100644 --- a/drivers/accessibility/speakup/varhandlers.c +++ b/drivers/accessibility/speakup/varhandlers.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 #include +#include #include "spk_types.h" #include "spk_priv.h" #include "speakup.h" @@ -265,10 +266,10 @@ int spk_set_string_var(const char *page, struct st_var_header *var, int len) if (!var->p_val) var->p_val = var_data->u.s.default_val; if (var->p_val != var_data->u.s.default_val) - strcpy((char *)var->p_val, var_data->u.s.default_val); + strscpy((char *)var->p_val, var_data->u.s.default_val, MAXVARLEN + 1); return -ERESTART; } else if (var->p_val) { - strcpy((char *)var->p_val, page); + strscpy((char *)var->p_val, page, MAXVARLEN + 1); } else { return -E2BIG; }