media: use strscpy() instead of strlcpy()
The implementation of strscpy() is more robust and safer. That's now the recommended way to copy NUL terminated strings. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Reviewed-by: Kees Cook <keescook@chromium.org> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
这个提交包含在:
@@ -1583,7 +1583,7 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
|
||||
if (f->index != 0)
|
||||
return -EINVAL;
|
||||
|
||||
strlcpy(f->description, "MPEG", sizeof(f->description));
|
||||
strscpy(f->description, "MPEG", sizeof(f->description));
|
||||
f->pixelformat = V4L2_PIX_FMT_MPEG;
|
||||
|
||||
return 0;
|
||||
|
@@ -67,7 +67,7 @@ int cx231xx_ir_init(struct cx231xx *dev)
|
||||
|
||||
dev->init_data.name = cx231xx_boards[dev->model].name;
|
||||
|
||||
strlcpy(info.type, "ir_video", I2C_NAME_SIZE);
|
||||
strscpy(info.type, "ir_video", I2C_NAME_SIZE);
|
||||
info.platform_data = &dev->init_data;
|
||||
|
||||
/*
|
||||
|
@@ -1354,22 +1354,22 @@ int cx231xx_g_chip_info(struct file *file, void *fh,
|
||||
case 0: /* Cx231xx - internal registers */
|
||||
return 0;
|
||||
case 1: /* AFE - read byte */
|
||||
strlcpy(chip->name, "AFE (byte)", sizeof(chip->name));
|
||||
strscpy(chip->name, "AFE (byte)", sizeof(chip->name));
|
||||
return 0;
|
||||
case 2: /* Video Block - read byte */
|
||||
strlcpy(chip->name, "Video (byte)", sizeof(chip->name));
|
||||
strscpy(chip->name, "Video (byte)", sizeof(chip->name));
|
||||
return 0;
|
||||
case 3: /* I2S block - read byte */
|
||||
strlcpy(chip->name, "I2S (byte)", sizeof(chip->name));
|
||||
strscpy(chip->name, "I2S (byte)", sizeof(chip->name));
|
||||
return 0;
|
||||
case 4: /* AFE - read dword */
|
||||
strlcpy(chip->name, "AFE (dword)", sizeof(chip->name));
|
||||
strscpy(chip->name, "AFE (dword)", sizeof(chip->name));
|
||||
return 0;
|
||||
case 5: /* Video Block - read dword */
|
||||
strlcpy(chip->name, "Video (dword)", sizeof(chip->name));
|
||||
strscpy(chip->name, "Video (dword)", sizeof(chip->name));
|
||||
return 0;
|
||||
case 6: /* I2S Block - read dword */
|
||||
strlcpy(chip->name, "I2S (dword)", sizeof(chip->name));
|
||||
strscpy(chip->name, "I2S (dword)", sizeof(chip->name));
|
||||
return 0;
|
||||
}
|
||||
return -EINVAL;
|
||||
@@ -1553,8 +1553,8 @@ int cx231xx_querycap(struct file *file, void *priv,
|
||||
struct cx231xx_fh *fh = priv;
|
||||
struct cx231xx *dev = fh->dev;
|
||||
|
||||
strlcpy(cap->driver, "cx231xx", sizeof(cap->driver));
|
||||
strlcpy(cap->card, cx231xx_boards[dev->model].name, sizeof(cap->card));
|
||||
strscpy(cap->driver, "cx231xx", sizeof(cap->driver));
|
||||
strscpy(cap->card, cx231xx_boards[dev->model].name, sizeof(cap->card));
|
||||
usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
|
||||
|
||||
if (vdev->vfl_type == VFL_TYPE_RADIO)
|
||||
@@ -1583,7 +1583,7 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
|
||||
if (unlikely(f->index >= ARRAY_SIZE(format)))
|
||||
return -EINVAL;
|
||||
|
||||
strlcpy(f->description, format[f->index].name, sizeof(f->description));
|
||||
strscpy(f->description, format[f->index].name, sizeof(f->description));
|
||||
f->pixelformat = format[f->index].fourcc;
|
||||
|
||||
return 0;
|
||||
|
在新工单中引用
屏蔽一个用户