[PATCH] media: verisilicon: Replace strlcat() with seq_buf
Hans Verkuil
hverkuil+cisco at kernel.org
Tue Nov 10 02:13:16 PST 2026
On 08/11/2026 21:08, David Laight wrote:
> On Thu, 5 Nov 2026 00:45:18 -0800
> Mariia Nikitash <nikitash.mariiaw at gmail.com> wrote:
>
>> In preparation for removing the deprecated strlcat() API[1], replace
>> the strscpy() and strlcat() calls with seq_buf operations when
>> constructing Hantro video device names.
>>
>> This preserves the resulting strings, including truncation
>> when the compatible string and suffix exceed the destination
>> buffer's capacity.
>
> This is just stupid...
>
> David
>
>>
>> Link: https://github.com/KSPP/linux/issues/370 [1]
>> Signed-off-by: Mariia Nikitash <nikitash.mariiaw at gmail.com>
Nacked-by: Hans Verkuil <hverkuil+cisco at kernel.org>
Just use scnprintf.
Regards,
Hans
>> ---
>> drivers/media/platform/verisilicon/hantro_drv.c | 11 ++++++++---
>> 1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/media/platform/verisilicon/hantro_drv.c
>> index 26e5d5547466..2bfcd45cc55e 100644
>> --- a/drivers/media/platform/verisilicon/hantro_drv.c
>> +++ b/drivers/media/platform/verisilicon/hantro_drv.c
>> @@ -17,6 +17,7 @@
>> #include <linux/platform_device.h>
>> #include <linux/pm.h>
>> #include <linux/pm_runtime.h>
>> +#include <linux/seq_buf.h>
>> #include <linux/slab.h>
>> #include <linux/videodev2.h>
>> #include <linux/workqueue.h>
>> @@ -883,6 +884,7 @@ static int hantro_add_func(struct hantro_dev *vpu, unsigned int funcid)
>> const struct of_device_id *match;
>> struct hantro_func *func;
>> struct video_device *vfd;
>> + struct seq_buf s;
>> int ret;
>>
>> match = of_match_node(of_hantro_match, vpu->dev->of_node);
>> @@ -902,9 +904,12 @@ static int hantro_add_func(struct hantro_dev *vpu, unsigned int funcid)
>> vfd->vfl_dir = VFL_DIR_M2M;
>> vfd->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M_MPLANE;
>> vfd->ioctl_ops = &hantro_ioctl_ops;
>> - strscpy(vfd->name, match->compatible, sizeof(vfd->name));
>> - strlcat(vfd->name, funcid == MEDIA_ENT_F_PROC_VIDEO_ENCODER ?
>> - "-enc" : "-dec", sizeof(vfd->name));
>> +
>> + seq_buf_init(&s, vfd->name, sizeof(vfd->name));
>> + seq_buf_puts(&s, match->compatible);
>> + seq_buf_puts(&s, funcid == MEDIA_ENT_F_PROC_VIDEO_ENCODER ?
>> + "-enc" : "-dec");
>> + seq_buf_terminate(&s);
>>
>> if (funcid == MEDIA_ENT_F_PROC_VIDEO_ENCODER) {
>> vpu->encoder = func;
>
>
More information about the Linux-rockchip
mailing list