| From 6efcec996a8225ce325f8bc95e1c3059c6ce4162 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 27 Sep 2021 09:45:02 -0600 |
| Subject: video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow |
| |
| From: Tim Gardner <tim.gardner@canonical.com> |
| |
| [ Upstream commit 37a1a2e6eeeb101285cd34e12e48a881524701aa ] |
| |
| 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: Tim Gardner <tim.gardner@canonical.com> |
| Signed-off-by: Helge Deller <deller@gmx.de> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/video/fbdev/nvidia/nv_i2c.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/video/fbdev/nvidia/nv_i2c.c b/drivers/video/fbdev/nvidia/nv_i2c.c |
| index d7994a173245..0b48965a6420 100644 |
| --- a/drivers/video/fbdev/nvidia/nv_i2c.c |
| +++ b/drivers/video/fbdev/nvidia/nv_i2c.c |
| @@ -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; |
| -- |
| 2.34.1 |
| |