[PATCH] drm: etnaviv: fix strncpy sizeof argument
Calling strncpy with a maximum size argument of 64 bytes on destination array "domain->name" of size 64 bytes might leave the destination string unterminated. Detected by CoverityScan, CID# 1443992: Memory - illegal accesses (BUFFER_SIZE_WARNING) Fixes: 9e2c2e2730126 (drm/etnaviv: add infrastructure to query perf counter) Signed-off-by: Bo YU --- drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c index 4227a4006c34..08ca3c44be48 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c @@ -414,7 +414,7 @@ int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu, domain->id = domain->iter; domain->nr_signals = dom->nr_signals; - strncpy(domain->name, dom->name, sizeof(domain->name)); + strncpy(domain->name, dom->name, sizeof(dom->name)); domain->iter++; if (domain->iter == meta->nr_domains) -- 2.11.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm: etnaviv: fix strncpy sizeof argument
On Tue, Mar 19, 2019 at 6:22 PM Russell King - ARM Linux admin wrote: > > On Mon, Mar 18, 2019 at 10:57:55PM -0400, Bo YU wrote: > > Calling strncpy with a maximum size argument of 64 bytes on destination > > array "domain->name" of size 64 bytes might leave the destination string > > unterminated. > > > > Detected by CoverityScan, CID# 1443992: Memory - illegal accesses > > (BUFFER_SIZE_WARNING) > > > > Fixes: 9e2c2e2730126 (drm/etnaviv: add infrastructure to query perf counter) > > Signed-off-by: Bo YU > > --- > > drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > > b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > > index 4227a4006c34..08ca3c44be48 100644 > > --- a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > > +++ b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > > @@ -414,7 +414,7 @@ int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu, > > > > domain->id = domain->iter; > > domain->nr_signals = dom->nr_signals; > > - strncpy(domain->name, dom->name, sizeof(domain->name)); > > + strncpy(domain->name, dom->name, sizeof(dom->name)); > > This introduces an overflow bug if sizeof(dom->name) > > sizeof(domain->name). If both sizes are the same, then there is no > effect. Oops,It seems more worse than original code. > > strlcpy() would be a better replacement, it guarantees that the > destination will be correctly terminated. But there are too many strcpy like usage in kernel, Does it matter? > > -- > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ > FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up > According to speedtest.net: 11.9Mbps down 500kbps up ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH v2] drm: etnaviv: fix strncpy sizeof argument
Calling strncpy with a maximum size argument of 64 bytes on destination array "domain->name" of size 64 bytes might leave the destination string unterminated. Detected by CoverityScan, CID# 1443992: Memory - illegal accesses (BUFFER_SIZE_WARNING) Fixes: 9e2c2e2730126 (drm/etnaviv: add infrastructure to query perf counter) Signed-off-by: Bo YU --- v2: accroding to Russell's suggestion, replace strncpy with strlcpy --- drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c index 4227a4006c34..ce178f23e86a 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c @@ -414,7 +414,7 @@ int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu, domain->id = domain->iter; domain->nr_signals = dom->nr_signals; - strncpy(domain->name, dom->name, sizeof(domain->name)); + strlcpy(domain->name, dom->name, sizeof(domain->name)); domain->iter++; if (domain->iter == meta->nr_domains) -- 2.11.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2] drm: etnaviv: fix strncpy sizeof argument
On Thu, Mar 28, 2019 at 4:09 PM Bo YU wrote: > > Calling strncpy with a maximum size argument of 64 bytes on destination > array "domain->name" of size 64 bytes might leave the destination string > unterminated. > > Detected by CoverityScan, CID# 1443992: Memory - illegal accesses > (BUFFER_SIZE_WARNING) > > Fixes: 9e2c2e2730126 (drm/etnaviv: add infrastructure to query perf counter) > Signed-off-by: Bo YU > --- > v2: accroding to Russell's suggestion, replace strncpy with strlcpy > --- > drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > index 4227a4006c34..ce178f23e86a 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > @@ -414,7 +414,7 @@ int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu, > > domain->id = domain->iter; > domain->nr_signals = dom->nr_signals; > - strncpy(domain->name, dom->name, sizeof(domain->name)); > + strlcpy(domain->name, dom->name, sizeof(domain->name)); > > domain->iter++; > if (domain->iter == meta->nr_domains) > -- > 2.11.0 > Ping? ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH -next] drm/drm_dp_mst:remove set but not used variable 'origlen'
Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/drm_dp_mst_topology.c:3693:16: warning: variable ‘origlen’ set but not used [-Wunused-but-set-variable] int replylen, origlen, curreply; It looks like never use variable origlen after assign value to it. Fixes: ad7f8a1f9ced7 (drm/helper: add Displayport multi-stream helper (v0.6)) Signed-off-by: Bo YU --- drivers/gpu/drm/drm_dp_mst_topology.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c index 4b74193b89ce..4c76e673206b 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c @@ -3690,7 +3690,7 @@ static bool drm_dp_get_one_sb_msg(struct drm_dp_mst_topology_mgr *mgr, bool up) { int len; u8 replyblock[32]; - int replylen, origlen, curreply; + int replylen, curreply; int ret; struct drm_dp_sideband_msg_rx *msg; int basereg = up ? DP_SIDEBAND_MSG_UP_REQ_BASE : DP_SIDEBAND_MSG_DOWN_REP_BASE; @@ -3710,7 +3710,6 @@ static bool drm_dp_get_one_sb_msg(struct drm_dp_mst_topology_mgr *mgr, bool up) } replylen = msg->curchunk_len + msg->curchunk_hdrlen; - origlen = replylen; replylen -= len; curreply = len; while (replylen > 0) { -- 2.11.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/amdgpu: Error handling issues about CHECKED_RETURN
Ok, drop it. On Thu, Feb 14, 2019 at 1:09 PM Zhou, David(ChunMing) wrote: > > > > -Original Message- > > From: Bo YU > > Sent: Thursday, February 14, 2019 12:46 PM > > To: Deucher, Alexander ; Koenig, Christian > > ; Zhou, David(ChunMing) > > ; airl...@linux.ie; dan...@ffwll.ch; Zhu, Rex > > ; Grodzovsky, Andrey > > ; dri-devel@lists.freedesktop.org; linux- > > ker...@vger.kernel.org > > Cc: Bo Yu ; amd-...@lists.freedesktop.org > > Subject: [PATCH] drm/amdgpu: Error handling issues about > > CHECKED_RETURN > > > > From: Bo Yu > > > > Calling "amdgpu_ring_test_helper" without checking return value > > We could need to continue to ring test even there is one ring test failed. > > -David > > > > > Signed-off-by: Bo Yu > > --- > > drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > > b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > > index 57cb3a51bda7..48465a61516b 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > > @@ -4728,7 +4728,9 @@ static int gfx_v8_0_cp_test_all_rings(struct > > amdgpu_device *adev) > > > > for (i = 0; i < adev->gfx.num_compute_rings; i++) { > > ring = &adev->gfx.compute_ring[i]; > > - amdgpu_ring_test_helper(ring); > > + r = amdgpu_ring_test_helper(ring); > > + if (r) > > + return r; > > } > > > > return 0; > > -- > > 2.11.0 > > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] drm/amdgpu: Error handling issues about CHECKED_RETURN
From: Bo Yu Calling "amdgpu_ring_test_helper" without checking return value Signed-off-by: Bo Yu --- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c index 57cb3a51bda7..48465a61516b 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c @@ -4728,7 +4728,9 @@ static int gfx_v8_0_cp_test_all_rings(struct amdgpu_device *adev) for (i = 0; i < adev->gfx.num_compute_rings; i++) { ring = &adev->gfx.compute_ring[i]; - amdgpu_ring_test_helper(ring); + r = amdgpu_ring_test_helper(ring); + if (r) + return r; } return 0; -- 2.11.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel