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; }