drivers: misc: ti-st: replace deprecated strncpy with strscpy
`strncpy` is deprecated for use on NUL-terminated destination strings [1] and as such we should prefer more robust and less ambiguous string interfaces. We expect both `kim_data->dev_name` and `kim_gdata->dev_name` to be NUL-terminated. `kim_data->dev_name` seems to not require NUL-padding. `kim_gdata` is already zero-allocated and as such does not require NUL-padding: | kim_gdata = kzalloc(sizeof(struct kim_data_s), GFP_KERNEL); Considering the above, a suitable replacement is `strscpy` [2] due to the fact that it guarantees NUL-termination on the destination buffer without unnecessarily NUL-padding. Let's also opt to use the more idiomatic strscpy usage of: strscpy(dest, src, sizeof(dest)) Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings [1] Link: https://manpages.debian.org/testing/linux-manual-4.8/strscpy.9.en.html [2] Link: https://github.com/KSPP/linux/issues/90 Cc: linux-hardening@vger.kernel.org Signed-off-by: Justin Stitt <justinstitt@google.com> Reviewed-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20231003-strncpy-drivers-misc-ti-st-st_kim-c-v2-1-79630447b0a1@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2801badd26
commit
14388ec005
@ -590,7 +590,7 @@ static ssize_t store_dev_name(struct device *dev,
|
||||
{
|
||||
struct kim_data_s *kim_data = dev_get_drvdata(dev);
|
||||
pr_debug("storing dev name >%s<", buf);
|
||||
strncpy(kim_data->dev_name, buf, count);
|
||||
strscpy(kim_data->dev_name, buf, sizeof(kim_data->dev_name));
|
||||
pr_debug("stored dev name >%s<", kim_data->dev_name);
|
||||
return count;
|
||||
}
|
||||
@ -751,7 +751,8 @@ static int kim_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
/* copying platform data */
|
||||
strncpy(kim_gdata->dev_name, pdata->dev_name, UART_DEV_NAME_LEN);
|
||||
strscpy(kim_gdata->dev_name, pdata->dev_name,
|
||||
sizeof(kim_gdata->dev_name));
|
||||
kim_gdata->flow_cntrl = pdata->flow_cntrl;
|
||||
kim_gdata->baud_rate = pdata->baud_rate;
|
||||
pr_info("sysfs entries created\n");
|
||||
|
Loading…
Reference in New Issue
Block a user