Commit a45b09da authored by Tim Gardner's avatar Tim Gardner Committed by Yuntao Liu
Browse files

video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow

stable inclusion
from stable-v4.19.238
commit 72dd5c46a152136712a55bf026a9aa8c1b12b60d
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBP6T4
CVE: CVE-2021-47642

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=72dd5c46a152136712a55bf026a9aa8c1b12b60d



--------------------------------

[ Upstream commit 37a1a2e6 ]

Coverity complains of a possible buffer overflow. However,
given the 'static' scope of nvidia_setup_i2c_bus() it looks
like that can't happen after examiniing the call sites.

CID 19036 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)
1. fixed_size_dest: You might overrun the 48-character fixed-size string
  chan->adapter.name by copying name without checking the length.
2. parameter_as_source: Note: This defect has an elevated risk because the
  source argument is a parameter of the current function.
 89        strcpy(chan->adapter.name, name);

Fix this warning by using strscpy() which will silence the warning and
prevent any future buffer overflows should the names used to identify the
channel become much longer.

Cc: Antonino Daplas <adaplas@gmail.com>
Cc: linux-fbdev@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: default avatarTim Gardner <tim.gardner@canonical.com>
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarYuntao Liu <liuyuntao12@huawei.com>
parent ddf40425
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name,
{
	int rc;

	strcpy(chan->adapter.name, name);
	strscpy(chan->adapter.name, name, sizeof(chan->adapter.name));
	chan->adapter.owner = THIS_MODULE;
	chan->adapter.class = i2c_class;
	chan->adapter.algo_data = &chan->algo;