Skip to content

Commit

Permalink
video: hdmi: prefer length specifier in format over string copying
Browse files Browse the repository at this point in the history
strncpy() is deprecated for use on NUL-terminated destination strings
[1] and as such we should prefer more robust and less ambiguous string
interfaces.

It looks like the main use of strncpy() here is to limit the amount of
bytes printed from hdmi_log() by using a tmp buffer and limiting the
number of bytes copied. Really, we should use the %.<len>s format
qualifier to achieve this.

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
Link: KSPP/linux#90
Cc: [email protected]
Signed-off-by: Justin Stitt <[email protected]>
Reviewed-by: Kees Cook <[email protected]>
Signed-off-by: Helge Deller <[email protected]>
  • Loading branch information
JustinStitt authored and lutzbichler committed Nov 8, 2024
1 parent 3f7d096 commit 01bd53e
Showing 1 changed file with 2 additions and 8 deletions.
10 changes: 2 additions & 8 deletions drivers/video/hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1310,17 +1310,11 @@ static void hdmi_spd_infoframe_log(const char *level,
struct device *dev,
const struct hdmi_spd_infoframe *frame)
{
u8 buf[17];

hdmi_infoframe_log_header(level, dev,
(const struct hdmi_any_infoframe *)frame);

memset(buf, 0, sizeof(buf));

strncpy(buf, frame->vendor, 8);
hdmi_log(" vendor: %s\n", buf);
strncpy(buf, frame->product, 16);
hdmi_log(" product: %s\n", buf);
hdmi_log(" vendor: %.8s\n", frame->vendor);
hdmi_log(" product: %.16s\n", frame->product);
hdmi_log(" source device information: %s (0x%x)\n",
hdmi_spd_sdi_get_name(frame->sdi), frame->sdi);
}
Expand Down

0 comments on commit 01bd53e

Please sign in to comment.