[linux-next] drm/virtio: use strscpy() to instead of strncpy()

Message ID 202212070913161959936@zte.com.cn
State New
Headers
Series [linux-next] drm/virtio: use strscpy() to instead of strncpy() |

Commit Message

Yang Yang Dec. 7, 2022, 1:13 a.m. UTC
  From: Xu Panda <xu.panda@zte.com.cn>

The implementation of strscpy() is more robust and safer.
That's now the recommended way to copy NUL terminated strings.

Signed-off-by: Xu Panda <xu.panda@zte.com.cn>
Signed-off-by: Yang Yang <yang.yang29@zte.com>
---
 drivers/gpu/drm/virtio/virtgpu_vq.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
  

Comments

Dmitry Osipenko Feb. 27, 2023, 12:04 a.m. UTC | #1
On 12/7/22 04:13, yang.yang29@zte.com.cn wrote:
> From: Xu Panda <xu.panda@zte.com.cn>
> 
> The implementation of strscpy() is more robust and safer.
> That's now the recommended way to copy NUL terminated strings.
> 
> Signed-off-by: Xu Panda <xu.panda@zte.com.cn>
> Signed-off-by: Yang Yang <yang.yang29@zte.com>
> ---
>  drivers/gpu/drm/virtio/virtgpu_vq.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
> index 9ff8660b50ad..7d95bc74b307 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_vq.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_vq.c
> @@ -916,8 +916,7 @@ void virtio_gpu_cmd_context_create(struct virtio_gpu_device *vgdev, uint32_t id,
>  	cmd_p->hdr.ctx_id = cpu_to_le32(id);
>  	cmd_p->nlen = cpu_to_le32(nlen);
>  	cmd_p->context_init = cpu_to_le32(context_init);
> -	strncpy(cmd_p->debug_name, name, sizeof(cmd_p->debug_name) - 1);
> -	cmd_p->debug_name[sizeof(cmd_p->debug_name) - 1] = 0;
> +	strscpy(cmd_p->debug_name, name, sizeof(cmd_p->debug_name));
>  	virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
>  }
> 

Applied to misc-next
  

Patch

diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
index 9ff8660b50ad..7d95bc74b307 100644
--- a/drivers/gpu/drm/virtio/virtgpu_vq.c
+++ b/drivers/gpu/drm/virtio/virtgpu_vq.c
@@ -916,8 +916,7 @@  void virtio_gpu_cmd_context_create(struct virtio_gpu_device *vgdev, uint32_t id,
 	cmd_p->hdr.ctx_id = cpu_to_le32(id);
 	cmd_p->nlen = cpu_to_le32(nlen);
 	cmd_p->context_init = cpu_to_le32(context_init);
-	strncpy(cmd_p->debug_name, name, sizeof(cmd_p->debug_name) - 1);
-	cmd_p->debug_name[sizeof(cmd_p->debug_name) - 1] = 0;
+	strscpy(cmd_p->debug_name, name, sizeof(cmd_p->debug_name));
 	virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
 }