瀏覽代碼

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>
Mauro Carvalho Chehab 7 年之前
父節點
當前提交
c0decac19d
共有 100 個文件被更改,包括 235 次插入231 次删除
  1. 2 2
      drivers/media/cec/cec-api.c
  2. 1 1
      drivers/media/cec/cec-core.c
  3. 6 6
      drivers/media/common/b2c2/flexcop-i2c.c
  4. 1 1
      drivers/media/common/cx2341x.c
  5. 1 1
      drivers/media/common/saa7146/saa7146_fops.c
  6. 3 3
      drivers/media/common/saa7146/saa7146_video.c
  7. 2 2
      drivers/media/common/siano/smscoreapi.c
  8. 1 1
      drivers/media/common/siano/smsir.c
  9. 1 1
      drivers/media/dvb-core/dvb_vb2.c
  10. 2 2
      drivers/media/dvb-core/dvbdev.c
  11. 1 1
      drivers/media/dvb-frontends/cx24123.c
  12. 1 1
      drivers/media/dvb-frontends/cxd2820r_core.c
  13. 1 1
      drivers/media/dvb-frontends/dibx000_common.c
  14. 1 1
      drivers/media/dvb-frontends/lgdt330x.c
  15. 1 1
      drivers/media/dvb-frontends/m88ds3103.c
  16. 5 5
      drivers/media/dvb-frontends/rtl2832_sdr.c
  17. 1 1
      drivers/media/dvb-frontends/s5h1420.c
  18. 1 1
      drivers/media/dvb-frontends/tc90522.c
  19. 1 1
      drivers/media/dvb-frontends/ts2020.c
  20. 2 1
      drivers/media/dvb-frontends/zd1301_demod.c
  21. 1 1
      drivers/media/i2c/cs53l32a.c
  22. 1 1
      drivers/media/i2c/imx274.c
  23. 1 1
      drivers/media/i2c/m5mols/m5mols_core.c
  24. 1 1
      drivers/media/i2c/max2175.c
  25. 1 1
      drivers/media/i2c/msp3400-driver.c
  26. 1 1
      drivers/media/i2c/noon010pc30.c
  27. 1 1
      drivers/media/i2c/ov9650.c
  28. 1 1
      drivers/media/i2c/s5c73m3/s5c73m3-core.c
  29. 1 1
      drivers/media/i2c/s5k4ecgx.c
  30. 1 1
      drivers/media/i2c/s5k6aa.c
  31. 3 3
      drivers/media/i2c/saa7115.c
  32. 2 2
      drivers/media/i2c/saa7127.c
  33. 1 1
      drivers/media/i2c/tvaudio.c
  34. 4 4
      drivers/media/i2c/video-i2c.c
  35. 14 14
      drivers/media/media-device.c
  36. 3 3
      drivers/media/pci/bt8xx/bttv-driver.c
  37. 3 3
      drivers/media/pci/bt8xx/bttv-i2c.c
  38. 1 1
      drivers/media/pci/bt8xx/bttv-input.c
  39. 2 1
      drivers/media/pci/bt8xx/dvb-bt8xx.c
  40. 1 1
      drivers/media/pci/cobalt/cobalt-alsa-main.c
  41. 2 2
      drivers/media/pci/cobalt/cobalt-alsa-pcm.c
  42. 7 7
      drivers/media/pci/cobalt/cobalt-v4l2.c
  43. 1 1
      drivers/media/pci/cx18/cx18-alsa-main.c
  44. 1 1
      drivers/media/pci/cx18/cx18-alsa-pcm.c
  45. 4 4
      drivers/media/pci/cx18/cx18-cards.c
  46. 1 1
      drivers/media/pci/cx18/cx18-driver.c
  47. 1 1
      drivers/media/pci/cx18/cx18-i2c.c
  48. 4 4
      drivers/media/pci/cx18/cx18-ioctl.c
  49. 3 3
      drivers/media/pci/cx23885/cx23885-417.c
  50. 27 27
      drivers/media/pci/cx23885/cx23885-dvb.c
  51. 2 2
      drivers/media/pci/cx23885/cx23885-i2c.c
  52. 2 2
      drivers/media/pci/cx23885/cx23885-ioctl.c
  53. 2 2
      drivers/media/pci/cx23885/cx23885-video.c
  54. 1 1
      drivers/media/pci/cx25821/cx25821-i2c.c
  55. 2 2
      drivers/media/pci/cx25821/cx25821-video.c
  56. 1 1
      drivers/media/pci/cx88/cx88-blackbird.c
  57. 2 2
      drivers/media/pci/cx88/cx88-i2c.c
  58. 2 2
      drivers/media/pci/cx88/cx88-input.c
  59. 2 2
      drivers/media/pci/cx88/cx88-video.c
  60. 1 1
      drivers/media/pci/cx88/cx88-vp3054-i2c.c
  61. 1 1
      drivers/media/pci/dt3155/dt3155.c
  62. 4 4
      drivers/media/pci/intel/ipu3/ipu3-cio2.c
  63. 1 1
      drivers/media/pci/ivtv/ivtv-alsa-main.c
  64. 1 1
      drivers/media/pci/ivtv/ivtv-alsa-pcm.c
  65. 6 6
      drivers/media/pci/ivtv/ivtv-cards.c
  66. 2 2
      drivers/media/pci/ivtv/ivtv-i2c.c
  67. 4 4
      drivers/media/pci/ivtv/ivtv-ioctl.c
  68. 1 1
      drivers/media/pci/ivtv/ivtvfb.c
  69. 1 1
      drivers/media/pci/pt3/pt3.c
  70. 1 1
      drivers/media/pci/saa7134/saa7134-empress.c
  71. 1 1
      drivers/media/pci/saa7134/saa7134-go7007.c
  72. 1 1
      drivers/media/pci/saa7134/saa7134-input.c
  73. 3 3
      drivers/media/pci/saa7134/saa7134-video.c
  74. 1 1
      drivers/media/pci/saa7146/mxb.c
  75. 5 5
      drivers/media/pci/saa7164/saa7164-dvb.c
  76. 2 2
      drivers/media/pci/saa7164/saa7164-encoder.c
  77. 1 1
      drivers/media/pci/saa7164/saa7164-i2c.c
  78. 1 1
      drivers/media/pci/saa7164/saa7164-vbi.c
  79. 4 4
      drivers/media/pci/smipcie/smipcie-main.c
  80. 1 1
      drivers/media/pci/solo6x10/solo6x10-v4l2.c
  81. 2 1
      drivers/media/pci/ttpci/av7110.c
  82. 2 1
      drivers/media/pci/ttpci/budget-core.c
  83. 2 2
      drivers/media/pci/tw68/tw68-video.c
  84. 4 4
      drivers/media/pci/tw686x/tw686x-audio.c
  85. 2 2
      drivers/media/pci/tw686x/tw686x-video.c
  86. 3 3
      drivers/media/platform/am437x/am437x-vpfe.c
  87. 1 1
      drivers/media/platform/atmel/atmel-isc.c
  88. 5 5
      drivers/media/platform/atmel/atmel-isi.c
  89. 4 4
      drivers/media/platform/coda/coda-common.c
  90. 1 1
      drivers/media/platform/davinci/vpbe_display.c
  91. 3 3
      drivers/media/platform/davinci/vpfe_capture.c
  92. 3 3
      drivers/media/platform/davinci/vpif_capture.c
  93. 3 3
      drivers/media/platform/davinci/vpif_display.c
  94. 1 1
      drivers/media/platform/exynos-gsc/gsc-core.c
  95. 2 2
      drivers/media/platform/exynos-gsc/gsc-m2m.c
  96. 2 2
      drivers/media/platform/exynos4-is/common.c
  97. 1 1
      drivers/media/platform/exynos4-is/fimc-capture.c
  98. 1 1
      drivers/media/platform/exynos4-is/fimc-is-i2c.c
  99. 1 1
      drivers/media/platform/exynos4-is/fimc-isp-video.c
  100. 3 3
      drivers/media/platform/exynos4-is/fimc-lite.c

+ 2 - 2
drivers/media/cec/cec-api.c

@@ -77,9 +77,9 @@ static long cec_adap_g_caps(struct cec_adapter *adap,
 {
 {
 	struct cec_caps caps = {};
 	struct cec_caps caps = {};
 
 
-	strlcpy(caps.driver, adap->devnode.dev.parent->driver->name,
+	strscpy(caps.driver, adap->devnode.dev.parent->driver->name,
 		sizeof(caps.driver));
 		sizeof(caps.driver));
-	strlcpy(caps.name, adap->name, sizeof(caps.name));
+	strscpy(caps.name, adap->name, sizeof(caps.name));
 	caps.available_log_addrs = adap->available_log_addrs;
 	caps.available_log_addrs = adap->available_log_addrs;
 	caps.capabilities = adap->capabilities;
 	caps.capabilities = adap->capabilities;
 	caps.version = LINUX_VERSION_CODE;
 	caps.version = LINUX_VERSION_CODE;

+ 1 - 1
drivers/media/cec/cec-core.c

@@ -264,7 +264,7 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
 	adap = kzalloc(sizeof(*adap), GFP_KERNEL);
 	adap = kzalloc(sizeof(*adap), GFP_KERNEL);
 	if (!adap)
 	if (!adap)
 		return ERR_PTR(-ENOMEM);
 		return ERR_PTR(-ENOMEM);
-	strlcpy(adap->name, name, sizeof(adap->name));
+	strscpy(adap->name, name, sizeof(adap->name));
 	adap->phys_addr = CEC_PHYS_ADDR_INVALID;
 	adap->phys_addr = CEC_PHYS_ADDR_INVALID;
 	adap->cec_pin_is_high = true;
 	adap->cec_pin_is_high = true;
 	adap->log_addrs.cec_version = CEC_OP_CEC_VERSION_2_0;
 	adap->log_addrs.cec_version = CEC_OP_CEC_VERSION_2_0;

+ 6 - 6
drivers/media/common/b2c2/flexcop-i2c.c

@@ -226,12 +226,12 @@ int flexcop_i2c_init(struct flexcop_device *fc)
 	fc->fc_i2c_adap[1].port = FC_I2C_PORT_EEPROM;
 	fc->fc_i2c_adap[1].port = FC_I2C_PORT_EEPROM;
 	fc->fc_i2c_adap[2].port = FC_I2C_PORT_TUNER;
 	fc->fc_i2c_adap[2].port = FC_I2C_PORT_TUNER;
 
 
-	strlcpy(fc->fc_i2c_adap[0].i2c_adap.name, "B2C2 FlexCop I2C to demod",
-			sizeof(fc->fc_i2c_adap[0].i2c_adap.name));
-	strlcpy(fc->fc_i2c_adap[1].i2c_adap.name, "B2C2 FlexCop I2C to eeprom",
-			sizeof(fc->fc_i2c_adap[1].i2c_adap.name));
-	strlcpy(fc->fc_i2c_adap[2].i2c_adap.name, "B2C2 FlexCop I2C to tuner",
-			sizeof(fc->fc_i2c_adap[2].i2c_adap.name));
+	strscpy(fc->fc_i2c_adap[0].i2c_adap.name, "B2C2 FlexCop I2C to demod",
+		sizeof(fc->fc_i2c_adap[0].i2c_adap.name));
+	strscpy(fc->fc_i2c_adap[1].i2c_adap.name, "B2C2 FlexCop I2C to eeprom",
+		sizeof(fc->fc_i2c_adap[1].i2c_adap.name));
+	strscpy(fc->fc_i2c_adap[2].i2c_adap.name, "B2C2 FlexCop I2C to tuner",
+		sizeof(fc->fc_i2c_adap[2].i2c_adap.name));
 
 
 	i2c_set_adapdata(&fc->fc_i2c_adap[0].i2c_adap, &fc->fc_i2c_adap[0]);
 	i2c_set_adapdata(&fc->fc_i2c_adap[0].i2c_adap, &fc->fc_i2c_adap[0]);
 	i2c_set_adapdata(&fc->fc_i2c_adap[1].i2c_adap, &fc->fc_i2c_adap[1]);
 	i2c_set_adapdata(&fc->fc_i2c_adap[1].i2c_adap, &fc->fc_i2c_adap[1]);

+ 1 - 1
drivers/media/common/cx2341x.c

@@ -569,7 +569,7 @@ static int cx2341x_ctrl_query_fill(struct v4l2_queryctrl *qctrl,
 		qctrl->step = step;
 		qctrl->step = step;
 		qctrl->default_value = def;
 		qctrl->default_value = def;
 		qctrl->reserved[0] = qctrl->reserved[1] = 0;
 		qctrl->reserved[0] = qctrl->reserved[1] = 0;
-		strlcpy(qctrl->name, name, sizeof(qctrl->name));
+		strscpy(qctrl->name, name, sizeof(qctrl->name));
 		return 0;
 		return 0;
 
 
 	default:
 	default:

+ 1 - 1
drivers/media/common/saa7146/saa7146_fops.c

@@ -606,7 +606,7 @@ int saa7146_register_device(struct video_device *vfd, struct saa7146_dev *dev,
 	vfd->tvnorms = 0;
 	vfd->tvnorms = 0;
 	for (i = 0; i < dev->ext_vv_data->num_stds; i++)
 	for (i = 0; i < dev->ext_vv_data->num_stds; i++)
 		vfd->tvnorms |= dev->ext_vv_data->stds[i].id;
 		vfd->tvnorms |= dev->ext_vv_data->stds[i].id;
-	strlcpy(vfd->name, name, sizeof(vfd->name));
+	strscpy(vfd->name, name, sizeof(vfd->name));
 	video_set_drvdata(vfd, dev);
 	video_set_drvdata(vfd, dev);
 
 
 	err = video_register_device(vfd, type, -1);
 	err = video_register_device(vfd, type, -1);

+ 3 - 3
drivers/media/common/saa7146/saa7146_video.c

@@ -452,7 +452,7 @@ static int vidioc_querycap(struct file *file, void *fh, struct v4l2_capability *
 	struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev;
 	struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev;
 
 
 	strcpy((char *)cap->driver, "saa7146 v4l2");
 	strcpy((char *)cap->driver, "saa7146 v4l2");
-	strlcpy((char *)cap->card, dev->ext->name, sizeof(cap->card));
+	strscpy((char *)cap->card, dev->ext->name, sizeof(cap->card));
 	sprintf((char *)cap->bus_info, "PCI:%s", pci_name(dev->pci));
 	sprintf((char *)cap->bus_info, "PCI:%s", pci_name(dev->pci));
 	cap->device_caps =
 	cap->device_caps =
 		V4L2_CAP_VIDEO_CAPTURE |
 		V4L2_CAP_VIDEO_CAPTURE |
@@ -525,8 +525,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *fh, struct v4l2_fmtd
 {
 {
 	if (f->index >= ARRAY_SIZE(formats))
 	if (f->index >= ARRAY_SIZE(formats))
 		return -EINVAL;
 		return -EINVAL;
-	strlcpy((char *)f->description, formats[f->index].name,
-			sizeof(f->description));
+	strscpy((char *)f->description, formats[f->index].name,
+		sizeof(f->description));
 	f->pixelformat = formats[f->index].pixelformat;
 	f->pixelformat = formats[f->index].pixelformat;
 	return 0;
 	return 0;
 }
 }

+ 2 - 2
drivers/media/common/siano/smscoreapi.c

@@ -450,7 +450,7 @@ static struct smscore_registry_entry_t *smscore_find_registry(char *devpath)
 	entry = kmalloc(sizeof(*entry), GFP_KERNEL);
 	entry = kmalloc(sizeof(*entry), GFP_KERNEL);
 	if (entry) {
 	if (entry) {
 		entry->mode = default_mode;
 		entry->mode = default_mode;
-		strlcpy(entry->devpath, devpath, sizeof(entry->devpath));
+		strscpy(entry->devpath, devpath, sizeof(entry->devpath));
 		list_add(&entry->entry, &g_smscore_registry);
 		list_add(&entry->entry, &g_smscore_registry);
 	} else
 	} else
 		pr_err("failed to create smscore_registry.\n");
 		pr_err("failed to create smscore_registry.\n");
@@ -735,7 +735,7 @@ int smscore_register_device(struct smsdevice_params_t *params,
 	dev->postload_handler = params->postload_handler;
 	dev->postload_handler = params->postload_handler;
 
 
 	dev->device_flags = params->flags;
 	dev->device_flags = params->flags;
-	strlcpy(dev->devpath, params->devpath, sizeof(dev->devpath));
+	strscpy(dev->devpath, params->devpath, sizeof(dev->devpath));
 
 
 	smscore_registry_settype(dev->devpath, params->device_type);
 	smscore_registry_settype(dev->devpath, params->device_type);
 
 

+ 1 - 1
drivers/media/common/siano/smsir.c

@@ -55,7 +55,7 @@ int sms_ir_init(struct smscore_device_t *coredev)
 	snprintf(coredev->ir.name, sizeof(coredev->ir.name),
 	snprintf(coredev->ir.name, sizeof(coredev->ir.name),
 		 "SMS IR (%s)", sms_get_board(board_id)->name);
 		 "SMS IR (%s)", sms_get_board(board_id)->name);
 
 
-	strlcpy(coredev->ir.phys, coredev->devpath, sizeof(coredev->ir.phys));
+	strscpy(coredev->ir.phys, coredev->devpath, sizeof(coredev->ir.phys));
 	strlcat(coredev->ir.phys, "/ir0", sizeof(coredev->ir.phys));
 	strlcat(coredev->ir.phys, "/ir0", sizeof(coredev->ir.phys));
 
 
 	dev->device_name = coredev->ir.name;
 	dev->device_name = coredev->ir.name;

+ 1 - 1
drivers/media/dvb-core/dvb_vb2.c

@@ -194,7 +194,7 @@ int dvb_vb2_init(struct dvb_vb2_ctx *ctx, const char *name, int nonblocking)
 	spin_lock_init(&ctx->slock);
 	spin_lock_init(&ctx->slock);
 	INIT_LIST_HEAD(&ctx->dvb_q);
 	INIT_LIST_HEAD(&ctx->dvb_q);
 
 
-	strlcpy(ctx->name, name, DVB_VB2_NAME_MAX);
+	strscpy(ctx->name, name, DVB_VB2_NAME_MAX);
 	ctx->nonblocking = nonblocking;
 	ctx->nonblocking = nonblocking;
 	ctx->state = DVB_VB2_STATE_INIT;
 	ctx->state = DVB_VB2_STATE_INIT;
 
 

+ 2 - 2
drivers/media/dvb-core/dvbdev.c

@@ -967,9 +967,9 @@ struct i2c_client *dvb_module_probe(const char *module_name,
 		return NULL;
 		return NULL;
 
 
 	if (name)
 	if (name)
-		strlcpy(board_info->type, name, I2C_NAME_SIZE);
+		strscpy(board_info->type, name, I2C_NAME_SIZE);
 	else
 	else
-		strlcpy(board_info->type, module_name, I2C_NAME_SIZE);
+		strscpy(board_info->type, module_name, I2C_NAME_SIZE);
 
 
 	board_info->addr = addr;
 	board_info->addr = addr;
 	board_info->platform_data = platform_data;
 	board_info->platform_data = platform_data;

+ 1 - 1
drivers/media/dvb-frontends/cx24123.c

@@ -1087,7 +1087,7 @@ struct dvb_frontend *cx24123_attach(const struct cx24123_config *config,
 	if (config->dont_use_pll)
 	if (config->dont_use_pll)
 		cx24123_repeater_mode(state, 1, 0);
 		cx24123_repeater_mode(state, 1, 0);
 
 
-	strlcpy(state->tuner_i2c_adapter.name, "CX24123 tuner I2C bus",
+	strscpy(state->tuner_i2c_adapter.name, "CX24123 tuner I2C bus",
 		sizeof(state->tuner_i2c_adapter.name));
 		sizeof(state->tuner_i2c_adapter.name));
 	state->tuner_i2c_adapter.algo      = &cx24123_tuner_i2c_algo;
 	state->tuner_i2c_adapter.algo      = &cx24123_tuner_i2c_algo;
 	state->tuner_i2c_adapter.algo_data = NULL;
 	state->tuner_i2c_adapter.algo_data = NULL;

+ 1 - 1
drivers/media/dvb-frontends/cxd2820r_core.c

@@ -540,7 +540,7 @@ struct dvb_frontend *cxd2820r_attach(const struct cxd2820r_config *config,
 	pdata.attach_in_use = true;
 	pdata.attach_in_use = true;
 
 
 	memset(&board_info, 0, sizeof(board_info));
 	memset(&board_info, 0, sizeof(board_info));
-	strlcpy(board_info.type, "cxd2820r", I2C_NAME_SIZE);
+	strscpy(board_info.type, "cxd2820r", I2C_NAME_SIZE);
 	board_info.addr = config->i2c_address;
 	board_info.addr = config->i2c_address;
 	board_info.platform_data = &pdata;
 	board_info.platform_data = &pdata;
 	client = i2c_new_device(adapter, &board_info);
 	client = i2c_new_device(adapter, &board_info);

+ 1 - 1
drivers/media/dvb-frontends/dibx000_common.c

@@ -424,7 +424,7 @@ static int i2c_adapter_init(struct i2c_adapter *i2c_adap,
 				struct i2c_algorithm *algo, const char *name,
 				struct i2c_algorithm *algo, const char *name,
 				struct dibx000_i2c_master *mst)
 				struct dibx000_i2c_master *mst)
 {
 {
-	strlcpy(i2c_adap->name, name, sizeof(i2c_adap->name));
+	strscpy(i2c_adap->name, name, sizeof(i2c_adap->name));
 	i2c_adap->algo = algo;
 	i2c_adap->algo = algo;
 	i2c_adap->algo_data = NULL;
 	i2c_adap->algo_data = NULL;
 	i2c_set_adapdata(i2c_adap, mst);
 	i2c_set_adapdata(i2c_adap, mst);

+ 1 - 1
drivers/media/dvb-frontends/lgdt330x.c

@@ -929,7 +929,7 @@ struct dvb_frontend *lgdt330x_attach(const struct lgdt330x_config *_config,
 	struct i2c_board_info board_info = {};
 	struct i2c_board_info board_info = {};
 	struct lgdt330x_config config = *_config;
 	struct lgdt330x_config config = *_config;
 
 
-	strlcpy(board_info.type, "lgdt330x", sizeof(board_info.type));
+	strscpy(board_info.type, "lgdt330x", sizeof(board_info.type));
 	board_info.addr = demod_address;
 	board_info.addr = demod_address;
 	board_info.platform_data = &config;
 	board_info.platform_data = &config;
 	client = i2c_new_device(i2c, &board_info);
 	client = i2c_new_device(i2c, &board_info);

+ 1 - 1
drivers/media/dvb-frontends/m88ds3103.c

@@ -1284,7 +1284,7 @@ struct dvb_frontend *m88ds3103_attach(const struct m88ds3103_config *cfg,
 	pdata.attach_in_use = true;
 	pdata.attach_in_use = true;
 
 
 	memset(&board_info, 0, sizeof(board_info));
 	memset(&board_info, 0, sizeof(board_info));
-	strlcpy(board_info.type, "m88ds3103", I2C_NAME_SIZE);
+	strscpy(board_info.type, "m88ds3103", I2C_NAME_SIZE);
 	board_info.addr = cfg->i2c_addr;
 	board_info.addr = cfg->i2c_addr;
 	board_info.platform_data = &pdata;
 	board_info.platform_data = &pdata;
 	client = i2c_new_device(i2c, &board_info);
 	client = i2c_new_device(i2c, &board_info);

+ 5 - 5
drivers/media/dvb-frontends/rtl2832_sdr.c

@@ -439,8 +439,8 @@ static int rtl2832_sdr_querycap(struct file *file, void *fh,
 
 
 	dev_dbg(&pdev->dev, "\n");
 	dev_dbg(&pdev->dev, "\n");
 
 
-	strlcpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver));
-	strlcpy(cap->card, dev->vdev.name, sizeof(cap->card));
+	strscpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver));
+	strscpy(cap->card, dev->vdev.name, sizeof(cap->card));
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
 	usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info));
 	cap->device_caps = V4L2_CAP_SDR_CAPTURE | V4L2_CAP_STREAMING |
 	cap->device_caps = V4L2_CAP_SDR_CAPTURE | V4L2_CAP_STREAMING |
 			V4L2_CAP_READWRITE | V4L2_CAP_TUNER;
 			V4L2_CAP_READWRITE | V4L2_CAP_TUNER;
@@ -976,7 +976,7 @@ static int rtl2832_sdr_g_tuner(struct file *file, void *priv,
 	dev_dbg(&pdev->dev, "index=%d type=%d\n", v->index, v->type);
 	dev_dbg(&pdev->dev, "index=%d type=%d\n", v->index, v->type);
 
 
 	if (v->index == 0) {
 	if (v->index == 0) {
-		strlcpy(v->name, "ADC: Realtek RTL2832", sizeof(v->name));
+		strscpy(v->name, "ADC: Realtek RTL2832", sizeof(v->name));
 		v->type = V4L2_TUNER_ADC;
 		v->type = V4L2_TUNER_ADC;
 		v->capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS;
 		v->capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS;
 		v->rangelow =   300000;
 		v->rangelow =   300000;
@@ -986,7 +986,7 @@ static int rtl2832_sdr_g_tuner(struct file *file, void *priv,
 		   V4L2_SUBDEV_HAS_OP(dev->v4l2_subdev, tuner, g_tuner)) {
 		   V4L2_SUBDEV_HAS_OP(dev->v4l2_subdev, tuner, g_tuner)) {
 		ret = v4l2_subdev_call(dev->v4l2_subdev, tuner, g_tuner, v);
 		ret = v4l2_subdev_call(dev->v4l2_subdev, tuner, g_tuner, v);
 	} else if (v->index == 1) {
 	} else if (v->index == 1) {
-		strlcpy(v->name, "RF: <unknown>", sizeof(v->name));
+		strscpy(v->name, "RF: <unknown>", sizeof(v->name));
 		v->type = V4L2_TUNER_RF;
 		v->type = V4L2_TUNER_RF;
 		v->capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS;
 		v->capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS;
 		v->rangelow =    50000000;
 		v->rangelow =    50000000;
@@ -1133,7 +1133,7 @@ static int rtl2832_sdr_enum_fmt_sdr_cap(struct file *file, void *priv,
 	if (f->index >= dev->num_formats)
 	if (f->index >= dev->num_formats)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, formats[f->index].name, sizeof(f->description));
+	strscpy(f->description, formats[f->index].name, sizeof(f->description));
 	f->pixelformat = formats[f->index].pixelformat;
 	f->pixelformat = formats[f->index].pixelformat;
 
 
 	return 0;
 	return 0;

+ 1 - 1
drivers/media/dvb-frontends/s5h1420.c

@@ -912,7 +912,7 @@ struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config,
 	state->frontend.demodulator_priv = state;
 	state->frontend.demodulator_priv = state;
 
 
 	/* create tuner i2c adapter */
 	/* create tuner i2c adapter */
-	strlcpy(state->tuner_i2c_adapter.name, "S5H1420-PN1010 tuner I2C bus",
+	strscpy(state->tuner_i2c_adapter.name, "S5H1420-PN1010 tuner I2C bus",
 		sizeof(state->tuner_i2c_adapter.name));
 		sizeof(state->tuner_i2c_adapter.name));
 	state->tuner_i2c_adapter.algo      = &s5h1420_tuner_i2c_algo;
 	state->tuner_i2c_adapter.algo      = &s5h1420_tuner_i2c_algo;
 	state->tuner_i2c_adapter.algo_data = NULL;
 	state->tuner_i2c_adapter.algo_data = NULL;

+ 1 - 1
drivers/media/dvb-frontends/tc90522.c

@@ -781,7 +781,7 @@ static int tc90522_probe(struct i2c_client *client,
 	adap->owner = THIS_MODULE;
 	adap->owner = THIS_MODULE;
 	adap->algo = &tc90522_tuner_i2c_algo;
 	adap->algo = &tc90522_tuner_i2c_algo;
 	adap->dev.parent = &client->dev;
 	adap->dev.parent = &client->dev;
-	strlcpy(adap->name, "tc90522_sub", sizeof(adap->name));
+	strscpy(adap->name, "tc90522_sub", sizeof(adap->name));
 	i2c_set_adapdata(adap, state);
 	i2c_set_adapdata(adap, state);
 	ret = i2c_add_adapter(adap);
 	ret = i2c_add_adapter(adap);
 	if (ret < 0)
 	if (ret < 0)

+ 1 - 1
drivers/media/dvb-frontends/ts2020.c

@@ -525,7 +525,7 @@ struct dvb_frontend *ts2020_attach(struct dvb_frontend *fe,
 	pdata.attach_in_use = true;
 	pdata.attach_in_use = true;
 
 
 	memset(&board_info, 0, sizeof(board_info));
 	memset(&board_info, 0, sizeof(board_info));
-	strlcpy(board_info.type, "ts2020", I2C_NAME_SIZE);
+	strscpy(board_info.type, "ts2020", I2C_NAME_SIZE);
 	board_info.addr = config->tuner_address;
 	board_info.addr = config->tuner_address;
 	board_info.platform_data = &pdata;
 	board_info.platform_data = &pdata;
 	client = i2c_new_device(i2c, &board_info);
 	client = i2c_new_device(i2c, &board_info);

+ 2 - 1
drivers/media/dvb-frontends/zd1301_demod.c

@@ -499,7 +499,8 @@ static int zd1301_demod_probe(struct platform_device *pdev)
 		goto err_kfree;
 		goto err_kfree;
 
 
 	/* Create I2C adapter */
 	/* Create I2C adapter */
-	strlcpy(dev->adapter.name, "ZyDAS ZD1301 demod", sizeof(dev->adapter.name));
+	strscpy(dev->adapter.name, "ZyDAS ZD1301 demod",
+		sizeof(dev->adapter.name));
 	dev->adapter.algo = &zd1301_demod_i2c_algorithm;
 	dev->adapter.algo = &zd1301_demod_i2c_algorithm;
 	dev->adapter.algo_data = NULL;
 	dev->adapter.algo_data = NULL;
 	dev->adapter.dev.parent = pdev->dev.parent;
 	dev->adapter.dev.parent = pdev->dev.parent;

+ 1 - 1
drivers/media/i2c/cs53l32a.c

@@ -149,7 +149,7 @@ static int cs53l32a_probe(struct i2c_client *client,
 		return -EIO;
 		return -EIO;
 
 
 	if (!id)
 	if (!id)
-		strlcpy(client->name, "cs53l32a", sizeof(client->name));
+		strscpy(client->name, "cs53l32a", sizeof(client->name));
 
 
 	v4l_info(client, "chip found @ 0x%x (%s)\n",
 	v4l_info(client, "chip found @ 0x%x (%s)\n",
 			client->addr << 1, client->adapter->name);
 			client->addr << 1, client->adapter->name);

+ 1 - 1
drivers/media/i2c/imx274.c

@@ -1895,7 +1895,7 @@ static int imx274_probe(struct i2c_client *client,
 	imx274->client = client;
 	imx274->client = client;
 	sd = &imx274->sd;
 	sd = &imx274->sd;
 	v4l2_i2c_subdev_init(sd, client, &imx274_subdev_ops);
 	v4l2_i2c_subdev_init(sd, client, &imx274_subdev_ops);
-	strlcpy(sd->name, DRIVER_NAME, sizeof(sd->name));
+	strscpy(sd->name, DRIVER_NAME, sizeof(sd->name));
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
 
 
 	/* initialize subdev media pad */
 	/* initialize subdev media pad */

+ 1 - 1
drivers/media/i2c/m5mols/m5mols_core.c

@@ -987,7 +987,7 @@ static int m5mols_probe(struct i2c_client *client,
 
 
 	sd = &info->sd;
 	sd = &info->sd;
 	v4l2_i2c_subdev_init(sd, client, &m5mols_ops);
 	v4l2_i2c_subdev_init(sd, client, &m5mols_ops);
-	strlcpy(sd->name, MODULE_NAME, sizeof(sd->name));
+	strscpy(sd->name, MODULE_NAME, sizeof(sd->name));
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
 
 
 	sd->internal_ops = &m5mols_subdev_internal_ops;
 	sd->internal_ops = &m5mols_subdev_internal_ops;

+ 1 - 1
drivers/media/i2c/max2175.c

@@ -1165,7 +1165,7 @@ static int max2175_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt)
 	if (vt->index > 0)
 	if (vt->index > 0)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(vt->name, "RF", sizeof(vt->name));
+	strscpy(vt->name, "RF", sizeof(vt->name));
 	vt->type = V4L2_TUNER_RF;
 	vt->type = V4L2_TUNER_RF;
 	vt->capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS;
 	vt->capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS;
 	vt->rangelow = ctx->bands_rf->rangelow;
 	vt->rangelow = ctx->bands_rf->rangelow;

+ 1 - 1
drivers/media/i2c/msp3400-driver.c

@@ -688,7 +688,7 @@ static int msp_probe(struct i2c_client *client, const struct i2c_device_id *id)
 #endif
 #endif
 
 
 	if (!id)
 	if (!id)
-		strlcpy(client->name, "msp3400", sizeof(client->name));
+		strscpy(client->name, "msp3400", sizeof(client->name));
 
 
 	if (msp_reset(client) == -1) {
 	if (msp_reset(client) == -1) {
 		dev_dbg_lvl(&client->dev, 1, msp_debug, "msp3400 not found\n");
 		dev_dbg_lvl(&client->dev, 1, msp_debug, "msp3400 not found\n");

+ 1 - 1
drivers/media/i2c/noon010pc30.c

@@ -720,7 +720,7 @@ static int noon010_probe(struct i2c_client *client,
 	mutex_init(&info->lock);
 	mutex_init(&info->lock);
 	sd = &info->sd;
 	sd = &info->sd;
 	v4l2_i2c_subdev_init(sd, client, &noon010_ops);
 	v4l2_i2c_subdev_init(sd, client, &noon010_ops);
-	strlcpy(sd->name, MODULE_NAME, sizeof(sd->name));
+	strscpy(sd->name, MODULE_NAME, sizeof(sd->name));
 
 
 	sd->internal_ops = &noon010_subdev_internal_ops;
 	sd->internal_ops = &noon010_subdev_internal_ops;
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;

+ 1 - 1
drivers/media/i2c/ov9650.c

@@ -1539,7 +1539,7 @@ static int ov965x_probe(struct i2c_client *client,
 
 
 	sd = &ov965x->sd;
 	sd = &ov965x->sd;
 	v4l2_i2c_subdev_init(sd, client, &ov965x_subdev_ops);
 	v4l2_i2c_subdev_init(sd, client, &ov965x_subdev_ops);
-	strlcpy(sd->name, DRIVER_NAME, sizeof(sd->name));
+	strscpy(sd->name, DRIVER_NAME, sizeof(sd->name));
 
 
 	sd->internal_ops = &ov965x_sd_internal_ops;
 	sd->internal_ops = &ov965x_sd_internal_ops;
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |

+ 1 - 1
drivers/media/i2c/s5c73m3/s5c73m3-core.c

@@ -1683,7 +1683,7 @@ static int s5c73m3_probe(struct i2c_client *client,
 	v4l2_subdev_init(sd, &s5c73m3_subdev_ops);
 	v4l2_subdev_init(sd, &s5c73m3_subdev_ops);
 	sd->owner = client->dev.driver->owner;
 	sd->owner = client->dev.driver->owner;
 	v4l2_set_subdevdata(sd, state);
 	v4l2_set_subdevdata(sd, state);
-	strlcpy(sd->name, "S5C73M3", sizeof(sd->name));
+	strscpy(sd->name, "S5C73M3", sizeof(sd->name));
 
 
 	sd->internal_ops = &s5c73m3_internal_ops;
 	sd->internal_ops = &s5c73m3_internal_ops;
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;

+ 1 - 1
drivers/media/i2c/s5k4ecgx.c

@@ -954,7 +954,7 @@ static int s5k4ecgx_probe(struct i2c_client *client,
 	sd = &priv->sd;
 	sd = &priv->sd;
 	/* Registering subdev */
 	/* Registering subdev */
 	v4l2_i2c_subdev_init(sd, client, &s5k4ecgx_ops);
 	v4l2_i2c_subdev_init(sd, client, &s5k4ecgx_ops);
-	strlcpy(sd->name, S5K4ECGX_DRIVER_NAME, sizeof(sd->name));
+	strscpy(sd->name, S5K4ECGX_DRIVER_NAME, sizeof(sd->name));
 
 
 	sd->internal_ops = &s5k4ecgx_subdev_internal_ops;
 	sd->internal_ops = &s5k4ecgx_subdev_internal_ops;
 	/* Support v4l2 sub-device user space API */
 	/* Support v4l2 sub-device user space API */

+ 1 - 1
drivers/media/i2c/s5k6aa.c

@@ -1576,7 +1576,7 @@ static int s5k6aa_probe(struct i2c_client *client,
 
 
 	sd = &s5k6aa->sd;
 	sd = &s5k6aa->sd;
 	v4l2_i2c_subdev_init(sd, client, &s5k6aa_subdev_ops);
 	v4l2_i2c_subdev_init(sd, client, &s5k6aa_subdev_ops);
-	strlcpy(sd->name, DRIVER_NAME, sizeof(sd->name));
+	strscpy(sd->name, DRIVER_NAME, sizeof(sd->name));
 
 
 	sd->internal_ops = &s5k6aa_subdev_internal_ops;
 	sd->internal_ops = &s5k6aa_subdev_internal_ops;
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;

+ 3 - 3
drivers/media/i2c/saa7115.c

@@ -1765,7 +1765,7 @@ static int saa711x_detect_chip(struct i2c_client *client,
 		 * the lower nibble is a gm7113c.
 		 * the lower nibble is a gm7113c.
 		 */
 		 */
 
 
-		strlcpy(name, "gm7113c", CHIP_VER_SIZE);
+		strscpy(name, "gm7113c", CHIP_VER_SIZE);
 
 
 		if (!autodetect && strcmp(name, id->name))
 		if (!autodetect && strcmp(name, id->name))
 			return -EINVAL;
 			return -EINVAL;
@@ -1779,7 +1779,7 @@ static int saa711x_detect_chip(struct i2c_client *client,
 
 
 	/* Check if it is a CJC7113 */
 	/* Check if it is a CJC7113 */
 	if (!memcmp(name, "1111111111111111", CHIP_VER_SIZE)) {
 	if (!memcmp(name, "1111111111111111", CHIP_VER_SIZE)) {
-		strlcpy(name, "cjc7113", CHIP_VER_SIZE);
+		strscpy(name, "cjc7113", CHIP_VER_SIZE);
 
 
 		if (!autodetect && strcmp(name, id->name))
 		if (!autodetect && strcmp(name, id->name))
 			return -EINVAL;
 			return -EINVAL;
@@ -1825,7 +1825,7 @@ static int saa711x_probe(struct i2c_client *client,
 	if (ident < 0)
 	if (ident < 0)
 		return ident;
 		return ident;
 
 
-	strlcpy(client->name, name, sizeof(client->name));
+	strscpy(client->name, name, sizeof(client->name));
 
 
 	state = devm_kzalloc(&client->dev, sizeof(*state), GFP_KERNEL);
 	state = devm_kzalloc(&client->dev, sizeof(*state), GFP_KERNEL);
 	if (state == NULL)
 	if (state == NULL)

+ 2 - 2
drivers/media/i2c/saa7127.c

@@ -761,10 +761,10 @@ static int saa7127_probe(struct i2c_client *client,
 			saa7127_write(sd, SAA7129_REG_FADE_KEY_COL2,
 			saa7127_write(sd, SAA7129_REG_FADE_KEY_COL2,
 					read_result);
 					read_result);
 			state->ident = SAA7129;
 			state->ident = SAA7129;
-			strlcpy(client->name, "saa7129", I2C_NAME_SIZE);
+			strscpy(client->name, "saa7129", I2C_NAME_SIZE);
 		} else {
 		} else {
 			state->ident = SAA7127;
 			state->ident = SAA7127;
-			strlcpy(client->name, "saa7127", I2C_NAME_SIZE);
+			strscpy(client->name, "saa7127", I2C_NAME_SIZE);
 		}
 		}
 	}
 	}
 
 

+ 1 - 1
drivers/media/i2c/tvaudio.c

@@ -1981,7 +1981,7 @@ static int tvaudio_probe(struct i2c_client *client, const struct i2c_device_id *
 
 
 	/* fill required data structures */
 	/* fill required data structures */
 	if (!id)
 	if (!id)
-		strlcpy(client->name, desc->name, I2C_NAME_SIZE);
+		strscpy(client->name, desc->name, I2C_NAME_SIZE);
 	chip->desc = desc;
 	chip->desc = desc;
 	chip->shadow.count = desc->registers+1;
 	chip->shadow.count = desc->registers+1;
 	chip->prevmode = -1;
 	chip->prevmode = -1;

+ 4 - 4
drivers/media/i2c/video-i2c.c

@@ -352,8 +352,8 @@ static int video_i2c_querycap(struct file *file, void  *priv,
 	struct video_i2c_data *data = video_drvdata(file);
 	struct video_i2c_data *data = video_drvdata(file);
 	struct i2c_client *client = data->client;
 	struct i2c_client *client = data->client;
 
 
-	strlcpy(vcap->driver, data->v4l2_dev.name, sizeof(vcap->driver));
-	strlcpy(vcap->card, data->vdev.name, sizeof(vcap->card));
+	strscpy(vcap->driver, data->v4l2_dev.name, sizeof(vcap->driver));
+	strscpy(vcap->card, data->vdev.name, sizeof(vcap->card));
 
 
 	sprintf(vcap->bus_info, "I2C:%d-%d", client->adapter->nr, client->addr);
 	sprintf(vcap->bus_info, "I2C:%d-%d", client->adapter->nr, client->addr);
 
 
@@ -378,7 +378,7 @@ static int video_i2c_enum_input(struct file *file, void *fh,
 	if (vin->index > 0)
 	if (vin->index > 0)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(vin->name, "Camera", sizeof(vin->name));
+	strscpy(vin->name, "Camera", sizeof(vin->name));
 
 
 	vin->type = V4L2_INPUT_TYPE_CAMERA;
 	vin->type = V4L2_INPUT_TYPE_CAMERA;
 
 
@@ -534,7 +534,7 @@ static int video_i2c_probe(struct i2c_client *client,
 
 
 	data->client = client;
 	data->client = client;
 	v4l2_dev = &data->v4l2_dev;
 	v4l2_dev = &data->v4l2_dev;
-	strlcpy(v4l2_dev->name, VIDEO_I2C_DRIVER, sizeof(v4l2_dev->name));
+	strscpy(v4l2_dev->name, VIDEO_I2C_DRIVER, sizeof(v4l2_dev->name));
 
 
 	ret = v4l2_device_register(&client->dev, v4l2_dev);
 	ret = v4l2_device_register(&client->dev, v4l2_dev);
 	if (ret < 0)
 	if (ret < 0)

+ 14 - 14
drivers/media/media-device.c

@@ -69,14 +69,14 @@ static long media_device_get_info(struct media_device *dev, void *arg)
 	memset(info, 0, sizeof(*info));
 	memset(info, 0, sizeof(*info));
 
 
 	if (dev->driver_name[0])
 	if (dev->driver_name[0])
-		strlcpy(info->driver, dev->driver_name, sizeof(info->driver));
+		strscpy(info->driver, dev->driver_name, sizeof(info->driver));
 	else
 	else
-		strlcpy(info->driver, dev->dev->driver->name,
+		strscpy(info->driver, dev->dev->driver->name,
 			sizeof(info->driver));
 			sizeof(info->driver));
 
 
-	strlcpy(info->model, dev->model, sizeof(info->model));
-	strlcpy(info->serial, dev->serial, sizeof(info->serial));
-	strlcpy(info->bus_info, dev->bus_info, sizeof(info->bus_info));
+	strscpy(info->model, dev->model, sizeof(info->model));
+	strscpy(info->serial, dev->serial, sizeof(info->serial));
+	strscpy(info->bus_info, dev->bus_info, sizeof(info->bus_info));
 
 
 	info->media_version = LINUX_VERSION_CODE;
 	info->media_version = LINUX_VERSION_CODE;
 	info->driver_version = info->media_version;
 	info->driver_version = info->media_version;
@@ -115,7 +115,7 @@ static long media_device_enum_entities(struct media_device *mdev, void *arg)
 
 
 	entd->id = media_entity_id(ent);
 	entd->id = media_entity_id(ent);
 	if (ent->name)
 	if (ent->name)
-		strlcpy(entd->name, ent->name, sizeof(entd->name));
+		strscpy(entd->name, ent->name, sizeof(entd->name));
 	entd->type = ent->function;
 	entd->type = ent->function;
 	entd->revision = 0;		/* Unused */
 	entd->revision = 0;		/* Unused */
 	entd->flags = ent->flags;
 	entd->flags = ent->flags;
@@ -268,7 +268,7 @@ static long media_device_get_topology(struct media_device *mdev, void *arg)
 		kentity.id = entity->graph_obj.id;
 		kentity.id = entity->graph_obj.id;
 		kentity.function = entity->function;
 		kentity.function = entity->function;
 		kentity.flags = entity->flags;
 		kentity.flags = entity->flags;
-		strlcpy(kentity.name, entity->name,
+		strscpy(kentity.name, entity->name,
 			sizeof(kentity.name));
 			sizeof(kentity.name));
 
 
 		if (copy_to_user(uentity, &kentity, sizeof(kentity)))
 		if (copy_to_user(uentity, &kentity, sizeof(kentity)))
@@ -836,9 +836,9 @@ void media_device_pci_init(struct media_device *mdev,
 	mdev->dev = &pci_dev->dev;
 	mdev->dev = &pci_dev->dev;
 
 
 	if (name)
 	if (name)
-		strlcpy(mdev->model, name, sizeof(mdev->model));
+		strscpy(mdev->model, name, sizeof(mdev->model));
 	else
 	else
-		strlcpy(mdev->model, pci_name(pci_dev), sizeof(mdev->model));
+		strscpy(mdev->model, pci_name(pci_dev), sizeof(mdev->model));
 
 
 	sprintf(mdev->bus_info, "PCI:%s", pci_name(pci_dev));
 	sprintf(mdev->bus_info, "PCI:%s", pci_name(pci_dev));
 
 
@@ -859,17 +859,17 @@ void __media_device_usb_init(struct media_device *mdev,
 	mdev->dev = &udev->dev;
 	mdev->dev = &udev->dev;
 
 
 	if (driver_name)
 	if (driver_name)
-		strlcpy(mdev->driver_name, driver_name,
+		strscpy(mdev->driver_name, driver_name,
 			sizeof(mdev->driver_name));
 			sizeof(mdev->driver_name));
 
 
 	if (board_name)
 	if (board_name)
-		strlcpy(mdev->model, board_name, sizeof(mdev->model));
+		strscpy(mdev->model, board_name, sizeof(mdev->model));
 	else if (udev->product)
 	else if (udev->product)
-		strlcpy(mdev->model, udev->product, sizeof(mdev->model));
+		strscpy(mdev->model, udev->product, sizeof(mdev->model));
 	else
 	else
-		strlcpy(mdev->model, "unknown model", sizeof(mdev->model));
+		strscpy(mdev->model, "unknown model", sizeof(mdev->model));
 	if (udev->serial)
 	if (udev->serial)
-		strlcpy(mdev->serial, udev->serial, sizeof(mdev->serial));
+		strscpy(mdev->serial, udev->serial, sizeof(mdev->serial));
 	usb_make_path(udev, mdev->bus_info, sizeof(mdev->bus_info));
 	usb_make_path(udev, mdev->bus_info, sizeof(mdev->bus_info));
 	mdev->hw_revision = le16_to_cpu(udev->descriptor.bcdDevice);
 	mdev->hw_revision = le16_to_cpu(udev->descriptor.bcdDevice);
 
 

+ 3 - 3
drivers/media/pci/bt8xx/bttv-driver.c

@@ -2473,8 +2473,8 @@ static int bttv_querycap(struct file *file, void  *priv,
 	if (0 == v4l2)
 	if (0 == v4l2)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(cap->driver, "bttv", sizeof(cap->driver));
-	strlcpy(cap->card, btv->video_dev.name, sizeof(cap->card));
+	strscpy(cap->driver, "bttv", sizeof(cap->driver));
+	strscpy(cap->card, btv->video_dev.name, sizeof(cap->card));
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 		 "PCI:%s", pci_name(btv->c.pci));
 		 "PCI:%s", pci_name(btv->c.pci));
 	cap->capabilities =
 	cap->capabilities =
@@ -2535,7 +2535,7 @@ static int bttv_enum_fmt_cap_ovr(struct v4l2_fmtdesc *f)
 		return -EINVAL;
 		return -EINVAL;
 
 
 	f->pixelformat = formats[i].fourcc;
 	f->pixelformat = formats[i].fourcc;
-	strlcpy(f->description, formats[i].name, sizeof(f->description));
+	strscpy(f->description, formats[i].name, sizeof(f->description));
 
 
 	return i;
 	return i;
 }
 }

+ 3 - 3
drivers/media/pci/bt8xx/bttv-i2c.c

@@ -347,13 +347,13 @@ static void do_i2c_scan(char *name, struct i2c_client *c)
 /* init + register i2c adapter */
 /* init + register i2c adapter */
 int init_bttv_i2c(struct bttv *btv)
 int init_bttv_i2c(struct bttv *btv)
 {
 {
-	strlcpy(btv->i2c_client.name, "bttv internal", I2C_NAME_SIZE);
+	strscpy(btv->i2c_client.name, "bttv internal", I2C_NAME_SIZE);
 
 
 	if (i2c_hw)
 	if (i2c_hw)
 		btv->use_i2c_hw = 1;
 		btv->use_i2c_hw = 1;
 	if (btv->use_i2c_hw) {
 	if (btv->use_i2c_hw) {
 		/* bt878 */
 		/* bt878 */
-		strlcpy(btv->c.i2c_adap.name, "bt878",
+		strscpy(btv->c.i2c_adap.name, "bt878",
 			sizeof(btv->c.i2c_adap.name));
 			sizeof(btv->c.i2c_adap.name));
 		btv->c.i2c_adap.algo = &bttv_algo;
 		btv->c.i2c_adap.algo = &bttv_algo;
 	} else {
 	} else {
@@ -362,7 +362,7 @@ int init_bttv_i2c(struct bttv *btv)
 		if (i2c_udelay<5)
 		if (i2c_udelay<5)
 			i2c_udelay=5;
 			i2c_udelay=5;
 
 
-		strlcpy(btv->c.i2c_adap.name, "bttv",
+		strscpy(btv->c.i2c_adap.name, "bttv",
 			sizeof(btv->c.i2c_adap.name));
 			sizeof(btv->c.i2c_adap.name));
 		btv->i2c_algo = bttv_i2c_algo_bit_template;
 		btv->i2c_algo = bttv_i2c_algo_bit_template;
 		btv->i2c_algo.udelay = i2c_udelay;
 		btv->i2c_algo.udelay = i2c_udelay;

+ 1 - 1
drivers/media/pci/bt8xx/bttv-input.c

@@ -382,7 +382,7 @@ void init_bttv_i2c_ir(struct bttv *btv)
 
 
 	memset(&info, 0, sizeof(struct i2c_board_info));
 	memset(&info, 0, sizeof(struct i2c_board_info));
 	memset(&btv->init_data, 0, sizeof(btv->init_data));
 	memset(&btv->init_data, 0, sizeof(btv->init_data));
-	strlcpy(info.type, "ir_video", I2C_NAME_SIZE);
+	strscpy(info.type, "ir_video", I2C_NAME_SIZE);
 
 
 	switch (btv->c.type) {
 	switch (btv->c.type) {
 	case BTTV_BOARD_PV951:
 	case BTTV_BOARD_PV951:

+ 2 - 1
drivers/media/pci/bt8xx/dvb-bt8xx.c

@@ -819,7 +819,8 @@ static int dvb_bt8xx_probe(struct bttv_sub_device *sub)
 
 
 	mutex_init(&card->lock);
 	mutex_init(&card->lock);
 	card->bttv_nr = sub->core->nr;
 	card->bttv_nr = sub->core->nr;
-	strlcpy(card->card_name, sub->core->v4l2_dev.name, sizeof(card->card_name));
+	strscpy(card->card_name, sub->core->v4l2_dev.name,
+		sizeof(card->card_name));
 	card->i2c_adapter = &sub->core->i2c_adap;
 	card->i2c_adapter = &sub->core->i2c_adap;
 
 
 	switch(sub->core->type) {
 	switch(sub->core->type) {

+ 1 - 1
drivers/media/pci/cobalt/cobalt-alsa-main.c

@@ -65,7 +65,7 @@ static int snd_cobalt_card_set_names(struct snd_cobalt_card *cobsc)
 	struct snd_card *sc = cobsc->sc;
 	struct snd_card *sc = cobsc->sc;
 
 
 	/* sc->driver is used by alsa-lib's configurator: simple, unique */
 	/* sc->driver is used by alsa-lib's configurator: simple, unique */
-	strlcpy(sc->driver, "cobalt", sizeof(sc->driver));
+	strscpy(sc->driver, "cobalt", sizeof(sc->driver));
 
 
 	/* sc->shortname is a symlink in /proc/asound: COBALT-M -> cardN */
 	/* sc->shortname is a symlink in /proc/asound: COBALT-M -> cardN */
 	snprintf(sc->shortname,  sizeof(sc->shortname), "cobalt-%d-%d",
 	snprintf(sc->shortname,  sizeof(sc->shortname), "cobalt-%d-%d",

+ 2 - 2
drivers/media/pci/cobalt/cobalt-alsa-pcm.c

@@ -557,7 +557,7 @@ int snd_cobalt_pcm_create(struct snd_cobalt_card *cobsc)
 				&snd_cobalt_pcm_capture_ops);
 				&snd_cobalt_pcm_capture_ops);
 		sp->info_flags = 0;
 		sp->info_flags = 0;
 		sp->private_data = cobsc;
 		sp->private_data = cobsc;
-		strlcpy(sp->name, "cobalt", sizeof(sp->name));
+		strscpy(sp->name, "cobalt", sizeof(sp->name));
 	} else {
 	} else {
 		cobalt_s_bit_sysctrl(cobalt,
 		cobalt_s_bit_sysctrl(cobalt,
 			COBALT_SYS_CTRL_AUDIO_OPP_RESETN_BIT, 0);
 			COBALT_SYS_CTRL_AUDIO_OPP_RESETN_BIT, 0);
@@ -581,7 +581,7 @@ int snd_cobalt_pcm_create(struct snd_cobalt_card *cobsc)
 				&snd_cobalt_pcm_playback_ops);
 				&snd_cobalt_pcm_playback_ops);
 		sp->info_flags = 0;
 		sp->info_flags = 0;
 		sp->private_data = cobsc;
 		sp->private_data = cobsc;
-		strlcpy(sp->name, "cobalt", sizeof(sp->name));
+		strscpy(sp->name, "cobalt", sizeof(sp->name));
 	}
 	}
 
 
 	return 0;
 	return 0;

+ 7 - 7
drivers/media/pci/cobalt/cobalt-v4l2.c

@@ -479,8 +479,8 @@ static int cobalt_querycap(struct file *file, void *priv_fh,
 	struct cobalt_stream *s = video_drvdata(file);
 	struct cobalt_stream *s = video_drvdata(file);
 	struct cobalt *cobalt = s->cobalt;
 	struct cobalt *cobalt = s->cobalt;
 
 
-	strlcpy(vcap->driver, "cobalt", sizeof(vcap->driver));
-	strlcpy(vcap->card, "cobalt", sizeof(vcap->card));
+	strscpy(vcap->driver, "cobalt", sizeof(vcap->driver));
+	strscpy(vcap->card, "cobalt", sizeof(vcap->card));
 	snprintf(vcap->bus_info, sizeof(vcap->bus_info),
 	snprintf(vcap->bus_info, sizeof(vcap->bus_info),
 		 "PCIe:%s", pci_name(cobalt->pci_dev));
 		 "PCIe:%s", pci_name(cobalt->pci_dev));
 	vcap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_READWRITE;
 	vcap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_READWRITE;
@@ -693,15 +693,15 @@ static int cobalt_enum_fmt_vid_cap(struct file *file, void *priv_fh,
 {
 {
 	switch (f->index) {
 	switch (f->index) {
 	case 0:
 	case 0:
-		strlcpy(f->description, "YUV 4:2:2", sizeof(f->description));
+		strscpy(f->description, "YUV 4:2:2", sizeof(f->description));
 		f->pixelformat = V4L2_PIX_FMT_YUYV;
 		f->pixelformat = V4L2_PIX_FMT_YUYV;
 		break;
 		break;
 	case 1:
 	case 1:
-		strlcpy(f->description, "RGB24", sizeof(f->description));
+		strscpy(f->description, "RGB24", sizeof(f->description));
 		f->pixelformat = V4L2_PIX_FMT_RGB24;
 		f->pixelformat = V4L2_PIX_FMT_RGB24;
 		break;
 		break;
 	case 2:
 	case 2:
-		strlcpy(f->description, "RGB32", sizeof(f->description));
+		strscpy(f->description, "RGB32", sizeof(f->description));
 		f->pixelformat = V4L2_PIX_FMT_BGR32;
 		f->pixelformat = V4L2_PIX_FMT_BGR32;
 		break;
 		break;
 	default:
 	default:
@@ -898,11 +898,11 @@ static int cobalt_enum_fmt_vid_out(struct file *file, void *priv_fh,
 {
 {
 	switch (f->index) {
 	switch (f->index) {
 	case 0:
 	case 0:
-		strlcpy(f->description, "YUV 4:2:2", sizeof(f->description));
+		strscpy(f->description, "YUV 4:2:2", sizeof(f->description));
 		f->pixelformat = V4L2_PIX_FMT_YUYV;
 		f->pixelformat = V4L2_PIX_FMT_YUYV;
 		break;
 		break;
 	case 1:
 	case 1:
-		strlcpy(f->description, "RGB32", sizeof(f->description));
+		strscpy(f->description, "RGB32", sizeof(f->description));
 		f->pixelformat = V4L2_PIX_FMT_BGR32;
 		f->pixelformat = V4L2_PIX_FMT_BGR32;
 		break;
 		break;
 	default:
 	default:

+ 1 - 1
drivers/media/pci/cx18/cx18-alsa-main.c

@@ -112,7 +112,7 @@ static int snd_cx18_card_set_names(struct snd_cx18_card *cxsc)
 	struct snd_card *sc = cxsc->sc;
 	struct snd_card *sc = cxsc->sc;
 
 
 	/* sc->driver is used by alsa-lib's configurator: simple, unique */
 	/* sc->driver is used by alsa-lib's configurator: simple, unique */
-	strlcpy(sc->driver, "CX23418", sizeof(sc->driver));
+	strscpy(sc->driver, "CX23418", sizeof(sc->driver));
 
 
 	/* sc->shortname is a symlink in /proc/asound: CX18-M -> cardN */
 	/* sc->shortname is a symlink in /proc/asound: CX18-M -> cardN */
 	snprintf(sc->shortname,  sizeof(sc->shortname), "CX18-%d",
 	snprintf(sc->shortname,  sizeof(sc->shortname), "CX18-%d",

+ 1 - 1
drivers/media/pci/cx18/cx18-alsa-pcm.c

@@ -345,7 +345,7 @@ int snd_cx18_pcm_create(struct snd_cx18_card *cxsc)
 			&snd_cx18_pcm_capture_ops);
 			&snd_cx18_pcm_capture_ops);
 	sp->info_flags = 0;
 	sp->info_flags = 0;
 	sp->private_data = cxsc;
 	sp->private_data = cxsc;
-	strlcpy(sp->name, cx->card_name, sizeof(sp->name));
+	strscpy(sp->name, cx->card_name, sizeof(sp->name));
 
 
 	return 0;
 	return 0;
 
 

+ 4 - 4
drivers/media/pci/cx18/cx18-cards.c

@@ -602,8 +602,8 @@ int cx18_get_input(struct cx18 *cx, u16 index, struct v4l2_input *input)
 	if (index >= cx->nof_inputs)
 	if (index >= cx->nof_inputs)
 		return -EINVAL;
 		return -EINVAL;
 	input->index = index;
 	input->index = index;
-	strlcpy(input->name, input_strs[card_input->video_type - 1],
-			sizeof(input->name));
+	strscpy(input->name, input_strs[card_input->video_type - 1],
+		sizeof(input->name));
 	input->type = (card_input->video_type == CX18_CARD_INPUT_VID_TUNER ?
 	input->type = (card_input->video_type == CX18_CARD_INPUT_VID_TUNER ?
 			V4L2_INPUT_TYPE_TUNER : V4L2_INPUT_TYPE_CAMERA);
 			V4L2_INPUT_TYPE_TUNER : V4L2_INPUT_TYPE_CAMERA);
 	input->audioset = (1 << cx->nof_audio_inputs) - 1;
 	input->audioset = (1 << cx->nof_audio_inputs) - 1;
@@ -625,8 +625,8 @@ int cx18_get_audio_input(struct cx18 *cx, u16 index, struct v4l2_audio *audio)
 	memset(audio, 0, sizeof(*audio));
 	memset(audio, 0, sizeof(*audio));
 	if (index >= cx->nof_audio_inputs)
 	if (index >= cx->nof_audio_inputs)
 		return -EINVAL;
 		return -EINVAL;
-	strlcpy(audio->name, input_strs[aud_input->audio_type - 1],
-			sizeof(audio->name));
+	strscpy(audio->name, input_strs[aud_input->audio_type - 1],
+		sizeof(audio->name));
 	audio->index = index;
 	audio->index = index;
 	audio->capability = V4L2_AUDCAP_STEREO;
 	audio->capability = V4L2_AUDCAP_STEREO;
 	return 0;
 	return 0;

+ 1 - 1
drivers/media/pci/cx18/cx18-driver.c

@@ -328,7 +328,7 @@ void cx18_read_eeprom(struct cx18 *cx, struct tveeprom *tv)
 	if (!c)
 	if (!c)
 		return;
 		return;
 
 
-	strlcpy(c->name, "cx18 tveeprom tmp", sizeof(c->name));
+	strscpy(c->name, "cx18 tveeprom tmp", sizeof(c->name));
 	c->adapter = &cx->i2c_adap[0];
 	c->adapter = &cx->i2c_adap[0];
 	c->addr = 0xa0 >> 1;
 	c->addr = 0xa0 >> 1;
 
 

+ 1 - 1
drivers/media/pci/cx18/cx18-i2c.c

@@ -83,7 +83,7 @@ static int cx18_i2c_new_ir(struct cx18 *cx, struct i2c_adapter *adap, u32 hw,
 	unsigned short addr_list[2] = { addr, I2C_CLIENT_END };
 	unsigned short addr_list[2] = { addr, I2C_CLIENT_END };
 
 
 	memset(&info, 0, sizeof(struct i2c_board_info));
 	memset(&info, 0, sizeof(struct i2c_board_info));
-	strlcpy(info.type, type, I2C_NAME_SIZE);
+	strscpy(info.type, type, I2C_NAME_SIZE);
 
 
 	/* Our default information for ir-kbd-i2c.c to use */
 	/* Our default information for ir-kbd-i2c.c to use */
 	switch (hw) {
 	switch (hw) {

+ 4 - 4
drivers/media/pci/cx18/cx18-ioctl.c

@@ -397,8 +397,8 @@ static int cx18_querycap(struct file *file, void *fh,
 	struct cx18_stream *s = video_drvdata(file);
 	struct cx18_stream *s = video_drvdata(file);
 	struct cx18 *cx = id->cx;
 	struct cx18 *cx = id->cx;
 
 
-	strlcpy(vcap->driver, CX18_DRIVER_NAME, sizeof(vcap->driver));
-	strlcpy(vcap->card, cx->card_name, sizeof(vcap->card));
+	strscpy(vcap->driver, CX18_DRIVER_NAME, sizeof(vcap->driver));
+	strscpy(vcap->card, cx->card_name, sizeof(vcap->card));
 	snprintf(vcap->bus_info, sizeof(vcap->bus_info),
 	snprintf(vcap->bus_info, sizeof(vcap->bus_info),
 		 "PCI:%s", pci_name(cx->pci_dev));
 		 "PCI:%s", pci_name(cx->pci_dev));
 	vcap->capabilities = cx->v4l2_cap;	/* capabilities */
 	vcap->capabilities = cx->v4l2_cap;	/* capabilities */
@@ -632,9 +632,9 @@ static int cx18_g_tuner(struct file *file, void *fh, struct v4l2_tuner *vt)
 	cx18_call_all(cx, tuner, g_tuner, vt);
 	cx18_call_all(cx, tuner, g_tuner, vt);
 
 
 	if (vt->type == V4L2_TUNER_RADIO)
 	if (vt->type == V4L2_TUNER_RADIO)
-		strlcpy(vt->name, "cx18 Radio Tuner", sizeof(vt->name));
+		strscpy(vt->name, "cx18 Radio Tuner", sizeof(vt->name));
 	else
 	else
-		strlcpy(vt->name, "cx18 TV Tuner", sizeof(vt->name));
+		strscpy(vt->name, "cx18 TV Tuner", sizeof(vt->name));
 	return 0;
 	return 0;
 }
 }
 
 

+ 3 - 3
drivers/media/pci/cx23885/cx23885-417.c

@@ -1329,8 +1329,8 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	struct cx23885_dev *dev = video_drvdata(file);
 	struct cx23885_dev *dev = video_drvdata(file);
 	struct cx23885_tsport  *tsport = &dev->ts1;
 	struct cx23885_tsport  *tsport = &dev->ts1;
 
 
-	strlcpy(cap->driver, dev->name, sizeof(cap->driver));
-	strlcpy(cap->card, cx23885_boards[tsport->dev->board].name,
+	strscpy(cap->driver, dev->name, sizeof(cap->driver));
+	strscpy(cap->card, cx23885_boards[tsport->dev->board].name,
 		sizeof(cap->card));
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCIe:%s", pci_name(dev->pci));
 	sprintf(cap->bus_info, "PCIe:%s", pci_name(dev->pci));
 	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE |
 	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE |
@@ -1349,7 +1349,7 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void  *priv,
 	if (f->index != 0)
 	if (f->index != 0)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, "MPEG", sizeof(f->description));
+	strscpy(f->description, "MPEG", sizeof(f->description));
 	f->pixelformat = V4L2_PIX_FMT_MPEG;
 	f->pixelformat = V4L2_PIX_FMT_MPEG;
 
 
 	return 0;
 	return 0;

+ 27 - 27
drivers/media/pci/cx23885/cx23885-dvb.c

@@ -1165,7 +1165,7 @@ static int dvb_register_ci_mac(struct cx23885_tsport *port)
 		sp2_config.priv = port;
 		sp2_config.priv = port;
 		sp2_config.ci_control = cx23885_sp2_ci_ctrl;
 		sp2_config.ci_control = cx23885_sp2_ci_ctrl;
 		memset(&info, 0, sizeof(struct i2c_board_info));
 		memset(&info, 0, sizeof(struct i2c_board_info));
-		strlcpy(info.type, "sp2", I2C_NAME_SIZE);
+		strscpy(info.type, "sp2", I2C_NAME_SIZE);
 		info.addr = 0x40;
 		info.addr = 0x40;
 		info.platform_data = &sp2_config;
 		info.platform_data = &sp2_config;
 		request_module(info.type);
 		request_module(info.type);
@@ -1831,7 +1831,7 @@ static int dvb_register(struct cx23885_tsport *port)
 		case 1:
 		case 1:
 			/* attach demod + tuner combo */
 			/* attach demod + tuner combo */
 			memset(&info, 0, sizeof(info));
 			memset(&info, 0, sizeof(info));
-			strlcpy(info.type, "tda10071_cx24118", I2C_NAME_SIZE);
+			strscpy(info.type, "tda10071_cx24118", I2C_NAME_SIZE);
 			info.addr = 0x05;
 			info.addr = 0x05;
 			info.platform_data = &tda10071_pdata;
 			info.platform_data = &tda10071_pdata;
 			request_module("tda10071");
 			request_module("tda10071");
@@ -1848,7 +1848,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			/* attach SEC */
 			/* attach SEC */
 			a8293_pdata.dvb_frontend = fe0->dvb.frontend;
 			a8293_pdata.dvb_frontend = fe0->dvb.frontend;
 			memset(&info, 0, sizeof(info));
 			memset(&info, 0, sizeof(info));
-			strlcpy(info.type, "a8293", I2C_NAME_SIZE);
+			strscpy(info.type, "a8293", I2C_NAME_SIZE);
 			info.addr = 0x0b;
 			info.addr = 0x0b;
 			info.platform_data = &a8293_pdata;
 			info.platform_data = &a8293_pdata;
 			request_module("a8293");
 			request_module("a8293");
@@ -1869,7 +1869,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2165_pdata.chip_mode = SI2165_MODE_PLL_XTAL;
 			si2165_pdata.chip_mode = SI2165_MODE_PLL_XTAL;
 			si2165_pdata.ref_freq_hz = 16000000;
 			si2165_pdata.ref_freq_hz = 16000000;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2165", I2C_NAME_SIZE);
+			strscpy(info.type, "si2165", I2C_NAME_SIZE);
 			info.addr = 0x64;
 			info.addr = 0x64;
 			info.platform_data = &si2165_pdata;
 			info.platform_data = &si2165_pdata;
 			request_module(info.type);
 			request_module(info.type);
@@ -1903,7 +1903,7 @@ static int dvb_register(struct cx23885_tsport *port)
 
 
 		/* attach demod + tuner combo */
 		/* attach demod + tuner combo */
 		memset(&info, 0, sizeof(info));
 		memset(&info, 0, sizeof(info));
-		strlcpy(info.type, "tda10071_cx24118", I2C_NAME_SIZE);
+		strscpy(info.type, "tda10071_cx24118", I2C_NAME_SIZE);
 		info.addr = 0x05;
 		info.addr = 0x05;
 		info.platform_data = &tda10071_pdata;
 		info.platform_data = &tda10071_pdata;
 		request_module("tda10071");
 		request_module("tda10071");
@@ -1920,7 +1920,7 @@ static int dvb_register(struct cx23885_tsport *port)
 		/* attach SEC */
 		/* attach SEC */
 		a8293_pdata.dvb_frontend = fe0->dvb.frontend;
 		a8293_pdata.dvb_frontend = fe0->dvb.frontend;
 		memset(&info, 0, sizeof(info));
 		memset(&info, 0, sizeof(info));
-		strlcpy(info.type, "a8293", I2C_NAME_SIZE);
+		strscpy(info.type, "a8293", I2C_NAME_SIZE);
 		info.addr = 0x0b;
 		info.addr = 0x0b;
 		info.platform_data = &a8293_pdata;
 		info.platform_data = &a8293_pdata;
 		request_module("a8293");
 		request_module("a8293");
@@ -1953,7 +1953,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			ts2020_config.fe = fe0->dvb.frontend;
 			ts2020_config.fe = fe0->dvb.frontend;
 			ts2020_config.get_agc_pwm = m88ds3103_get_agc_pwm;
 			ts2020_config.get_agc_pwm = m88ds3103_get_agc_pwm;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "ts2020", I2C_NAME_SIZE);
+			strscpy(info.type, "ts2020", I2C_NAME_SIZE);
 			info.addr = 0x60;
 			info.addr = 0x60;
 			info.platform_data = &ts2020_config;
 			info.platform_data = &ts2020_config;
 			request_module(info.type);
 			request_module(info.type);
@@ -1990,7 +1990,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2168_config.fe = &fe0->dvb.frontend;
 			si2168_config.fe = &fe0->dvb.frontend;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2168", I2C_NAME_SIZE);
+			strscpy(info.type, "si2168", I2C_NAME_SIZE);
 			info.addr = 0x64;
 			info.addr = 0x64;
 			info.platform_data = &si2168_config;
 			info.platform_data = &si2168_config;
 			request_module(info.type);
 			request_module(info.type);
@@ -2009,7 +2009,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2157_config.fe = fe0->dvb.frontend;
 			si2157_config.fe = fe0->dvb.frontend;
 			si2157_config.if_port = 1;
 			si2157_config.if_port = 1;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+			strscpy(info.type, "si2157", I2C_NAME_SIZE);
 			info.addr = 0x60;
 			info.addr = 0x60;
 			info.platform_data = &si2157_config;
 			info.platform_data = &si2157_config;
 			request_module(info.type);
 			request_module(info.type);
@@ -2037,7 +2037,7 @@ static int dvb_register(struct cx23885_tsport *port)
 		si2168_config.fe = &fe0->dvb.frontend;
 		si2168_config.fe = &fe0->dvb.frontend;
 		si2168_config.ts_mode = SI2168_TS_PARALLEL;
 		si2168_config.ts_mode = SI2168_TS_PARALLEL;
 		memset(&info, 0, sizeof(struct i2c_board_info));
 		memset(&info, 0, sizeof(struct i2c_board_info));
-		strlcpy(info.type, "si2168", I2C_NAME_SIZE);
+		strscpy(info.type, "si2168", I2C_NAME_SIZE);
 		info.addr = 0x64;
 		info.addr = 0x64;
 		info.platform_data = &si2168_config;
 		info.platform_data = &si2168_config;
 		request_module(info.type);
 		request_module(info.type);
@@ -2055,7 +2055,7 @@ static int dvb_register(struct cx23885_tsport *port)
 		si2157_config.fe = fe0->dvb.frontend;
 		si2157_config.fe = fe0->dvb.frontend;
 		si2157_config.if_port = 1;
 		si2157_config.if_port = 1;
 		memset(&info, 0, sizeof(struct i2c_board_info));
 		memset(&info, 0, sizeof(struct i2c_board_info));
-		strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+		strscpy(info.type, "si2157", I2C_NAME_SIZE);
 		info.addr = 0x60;
 		info.addr = 0x60;
 		info.platform_data = &si2157_config;
 		info.platform_data = &si2157_config;
 		request_module(info.type);
 		request_module(info.type);
@@ -2085,7 +2085,7 @@ static int dvb_register(struct cx23885_tsport *port)
 		ts2020_config.fe = fe0->dvb.frontend;
 		ts2020_config.fe = fe0->dvb.frontend;
 		ts2020_config.get_agc_pwm = m88ds3103_get_agc_pwm;
 		ts2020_config.get_agc_pwm = m88ds3103_get_agc_pwm;
 		memset(&info, 0, sizeof(struct i2c_board_info));
 		memset(&info, 0, sizeof(struct i2c_board_info));
-		strlcpy(info.type, "ts2020", I2C_NAME_SIZE);
+		strscpy(info.type, "ts2020", I2C_NAME_SIZE);
 		info.addr = 0x60;
 		info.addr = 0x60;
 		info.platform_data = &ts2020_config;
 		info.platform_data = &ts2020_config;
 		request_module(info.type);
 		request_module(info.type);
@@ -2134,7 +2134,7 @@ static int dvb_register(struct cx23885_tsport *port)
 		}
 		}
 
 
 		memset(&info, 0, sizeof(info));
 		memset(&info, 0, sizeof(info));
-		strlcpy(info.type, "m88ds3103", I2C_NAME_SIZE);
+		strscpy(info.type, "m88ds3103", I2C_NAME_SIZE);
 		info.addr = 0x68;
 		info.addr = 0x68;
 		info.platform_data = &m88ds3103_pdata;
 		info.platform_data = &m88ds3103_pdata;
 		request_module(info.type);
 		request_module(info.type);
@@ -2154,7 +2154,7 @@ static int dvb_register(struct cx23885_tsport *port)
 		ts2020_config.fe = fe0->dvb.frontend;
 		ts2020_config.fe = fe0->dvb.frontend;
 		ts2020_config.get_agc_pwm = m88ds3103_get_agc_pwm;
 		ts2020_config.get_agc_pwm = m88ds3103_get_agc_pwm;
 		memset(&info, 0, sizeof(struct i2c_board_info));
 		memset(&info, 0, sizeof(struct i2c_board_info));
-		strlcpy(info.type, "ts2020", I2C_NAME_SIZE);
+		strscpy(info.type, "ts2020", I2C_NAME_SIZE);
 		info.addr = 0x60;
 		info.addr = 0x60;
 		info.platform_data = &ts2020_config;
 		info.platform_data = &ts2020_config;
 		request_module(info.type);
 		request_module(info.type);
@@ -2199,7 +2199,7 @@ static int dvb_register(struct cx23885_tsport *port)
 		si2168_config.i2c_adapter = &adapter;
 		si2168_config.i2c_adapter = &adapter;
 		si2168_config.fe = &fe0->dvb.frontend;
 		si2168_config.fe = &fe0->dvb.frontend;
 		memset(&info, 0, sizeof(struct i2c_board_info));
 		memset(&info, 0, sizeof(struct i2c_board_info));
-		strlcpy(info.type, "si2168", I2C_NAME_SIZE);
+		strscpy(info.type, "si2168", I2C_NAME_SIZE);
 		info.addr = 0x64;
 		info.addr = 0x64;
 		info.platform_data = &si2168_config;
 		info.platform_data = &si2168_config;
 		request_module(info.type);
 		request_module(info.type);
@@ -2217,7 +2217,7 @@ static int dvb_register(struct cx23885_tsport *port)
 		si2157_config.fe = fe0->dvb.frontend;
 		si2157_config.fe = fe0->dvb.frontend;
 		si2157_config.if_port = 1;
 		si2157_config.if_port = 1;
 		memset(&info, 0, sizeof(struct i2c_board_info));
 		memset(&info, 0, sizeof(struct i2c_board_info));
-		strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+		strscpy(info.type, "si2157", I2C_NAME_SIZE);
 		info.addr = 0x60;
 		info.addr = 0x60;
 		info.platform_data = &si2157_config;
 		info.platform_data = &si2157_config;
 		request_module(info.type);
 		request_module(info.type);
@@ -2250,7 +2250,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			/* attach SEC */
 			/* attach SEC */
 			a8293_pdata.dvb_frontend = fe0->dvb.frontend;
 			a8293_pdata.dvb_frontend = fe0->dvb.frontend;
 			memset(&info, 0, sizeof(info));
 			memset(&info, 0, sizeof(info));
-			strlcpy(info.type, "a8293", I2C_NAME_SIZE);
+			strscpy(info.type, "a8293", I2C_NAME_SIZE);
 			info.addr = 0x0b;
 			info.addr = 0x0b;
 			info.platform_data = &a8293_pdata;
 			info.platform_data = &a8293_pdata;
 			request_module("a8293");
 			request_module("a8293");
@@ -2267,7 +2267,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			memset(&m88rs6000t_config, 0, sizeof(m88rs6000t_config));
 			memset(&m88rs6000t_config, 0, sizeof(m88rs6000t_config));
 			m88rs6000t_config.fe = fe0->dvb.frontend;
 			m88rs6000t_config.fe = fe0->dvb.frontend;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "m88rs6000t", I2C_NAME_SIZE);
+			strscpy(info.type, "m88rs6000t", I2C_NAME_SIZE);
 			info.addr = 0x21;
 			info.addr = 0x21;
 			info.platform_data = &m88rs6000t_config;
 			info.platform_data = &m88rs6000t_config;
 			request_module("%s", info.type);
 			request_module("%s", info.type);
@@ -2292,7 +2292,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2168_config.fe = &fe0->dvb.frontend;
 			si2168_config.fe = &fe0->dvb.frontend;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2168", I2C_NAME_SIZE);
+			strscpy(info.type, "si2168", I2C_NAME_SIZE);
 			info.addr = 0x64;
 			info.addr = 0x64;
 			info.platform_data = &si2168_config;
 			info.platform_data = &si2168_config;
 			request_module("%s", info.type);
 			request_module("%s", info.type);
@@ -2310,7 +2310,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2157_config.fe = fe0->dvb.frontend;
 			si2157_config.fe = fe0->dvb.frontend;
 			si2157_config.if_port = 1;
 			si2157_config.if_port = 1;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+			strscpy(info.type, "si2157", I2C_NAME_SIZE);
 			info.addr = 0x60;
 			info.addr = 0x60;
 			info.platform_data = &si2157_config;
 			info.platform_data = &si2157_config;
 			request_module("%s", info.type);
 			request_module("%s", info.type);
@@ -2345,7 +2345,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2168_config.fe = &fe0->dvb.frontend;
 			si2168_config.fe = &fe0->dvb.frontend;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2168", I2C_NAME_SIZE);
+			strscpy(info.type, "si2168", I2C_NAME_SIZE);
 			info.addr = 0x64;
 			info.addr = 0x64;
 			info.platform_data = &si2168_config;
 			info.platform_data = &si2168_config;
 			request_module("%s", info.type);
 			request_module("%s", info.type);
@@ -2363,7 +2363,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2157_config.fe = fe0->dvb.frontend;
 			si2157_config.fe = fe0->dvb.frontend;
 			si2157_config.if_port = 1;
 			si2157_config.if_port = 1;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+			strscpy(info.type, "si2157", I2C_NAME_SIZE);
 			info.addr = 0x60;
 			info.addr = 0x60;
 			info.platform_data = &si2157_config;
 			info.platform_data = &si2157_config;
 			request_module("%s", info.type);
 			request_module("%s", info.type);
@@ -2392,7 +2392,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2168_config.fe = &fe0->dvb.frontend;
 			si2168_config.fe = &fe0->dvb.frontend;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2168", I2C_NAME_SIZE);
+			strscpy(info.type, "si2168", I2C_NAME_SIZE);
 			info.addr = 0x66;
 			info.addr = 0x66;
 			info.platform_data = &si2168_config;
 			info.platform_data = &si2168_config;
 			request_module("%s", info.type);
 			request_module("%s", info.type);
@@ -2410,7 +2410,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2157_config.fe = fe0->dvb.frontend;
 			si2157_config.fe = fe0->dvb.frontend;
 			si2157_config.if_port = 1;
 			si2157_config.if_port = 1;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+			strscpy(info.type, "si2157", I2C_NAME_SIZE);
 			info.addr = 0x62;
 			info.addr = 0x62;
 			info.platform_data = &si2157_config;
 			info.platform_data = &si2157_config;
 			request_module("%s", info.type);
 			request_module("%s", info.type);
@@ -2452,7 +2452,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2157_config.if_port = 1;
 			si2157_config.if_port = 1;
 			si2157_config.inversion = 1;
 			si2157_config.inversion = 1;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+			strscpy(info.type, "si2157", I2C_NAME_SIZE);
 			info.addr = 0x60;
 			info.addr = 0x60;
 			info.platform_data = &si2157_config;
 			info.platform_data = &si2157_config;
 			request_module("%s", info.type);
 			request_module("%s", info.type);
@@ -2488,7 +2488,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2157_config.if_port = 1;
 			si2157_config.if_port = 1;
 			si2157_config.inversion = 1;
 			si2157_config.inversion = 1;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+			strscpy(info.type, "si2157", I2C_NAME_SIZE);
 			info.addr = 0x62;
 			info.addr = 0x62;
 			info.platform_data = &si2157_config;
 			info.platform_data = &si2157_config;
 			request_module("%s", info.type);
 			request_module("%s", info.type);
@@ -2528,7 +2528,7 @@ static int dvb_register(struct cx23885_tsport *port)
 			si2157_config.if_port = 1;
 			si2157_config.if_port = 1;
 			si2157_config.inversion = 1;
 			si2157_config.inversion = 1;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+			strscpy(info.type, "si2157", I2C_NAME_SIZE);
 			info.addr = 0x60;
 			info.addr = 0x60;
 			info.platform_data = &si2157_config;
 			info.platform_data = &si2157_config;
 			request_module("%s", info.type);
 			request_module("%s", info.type);

+ 2 - 2
drivers/media/pci/cx23885/cx23885-i2c.c

@@ -317,7 +317,7 @@ int cx23885_i2c_register(struct cx23885_i2c *bus)
 	bus->i2c_client = cx23885_i2c_client_template;
 	bus->i2c_client = cx23885_i2c_client_template;
 	bus->i2c_adap.dev.parent = &dev->pci->dev;
 	bus->i2c_adap.dev.parent = &dev->pci->dev;
 
 
-	strlcpy(bus->i2c_adap.name, bus->dev->name,
+	strscpy(bus->i2c_adap.name, bus->dev->name,
 		sizeof(bus->i2c_adap.name));
 		sizeof(bus->i2c_adap.name));
 
 
 	bus->i2c_adap.algo_data = bus;
 	bus->i2c_adap.algo_data = bus;
@@ -345,7 +345,7 @@ int cx23885_i2c_register(struct cx23885_i2c *bus)
 		};
 		};
 
 
 		memset(&info, 0, sizeof(struct i2c_board_info));
 		memset(&info, 0, sizeof(struct i2c_board_info));
-		strlcpy(info.type, "ir_video", I2C_NAME_SIZE);
+		strscpy(info.type, "ir_video", I2C_NAME_SIZE);
 		/* Use quick read command for probe, some IR chips don't
 		/* Use quick read command for probe, some IR chips don't
 		 * support writes */
 		 * support writes */
 		i2c_new_probed_device(&bus->i2c_adap, &info, addr_list,
 		i2c_new_probed_device(&bus->i2c_adap, &info, addr_list,

+ 2 - 2
drivers/media/pci/cx23885/cx23885-ioctl.c

@@ -31,9 +31,9 @@ int cx23885_g_chip_info(struct file *file, void *fh,
 	if (chip->match.addr == 1) {
 	if (chip->match.addr == 1) {
 		if (dev->v4l_device == NULL)
 		if (dev->v4l_device == NULL)
 			return -EINVAL;
 			return -EINVAL;
-		strlcpy(chip->name, "cx23417", sizeof(chip->name));
+		strscpy(chip->name, "cx23417", sizeof(chip->name));
 	} else {
 	} else {
-		strlcpy(chip->name, dev->v4l2_dev.name, sizeof(chip->name));
+		strscpy(chip->name, dev->v4l2_dev.name, sizeof(chip->name));
 	}
 	}
 	return 0;
 	return 0;
 }
 }

+ 2 - 2
drivers/media/pci/cx23885/cx23885-video.c

@@ -640,7 +640,7 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	struct video_device *vdev = video_devdata(file);
 	struct video_device *vdev = video_devdata(file);
 
 
 	strcpy(cap->driver, "cx23885");
 	strcpy(cap->driver, "cx23885");
-	strlcpy(cap->card, cx23885_boards[dev->board].name,
+	strscpy(cap->card, cx23885_boards[dev->board].name,
 		sizeof(cap->card));
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCIe:%s", pci_name(dev->pci));
 	sprintf(cap->bus_info, "PCIe:%s", pci_name(dev->pci));
 	cap->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING | V4L2_CAP_AUDIO;
 	cap->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING | V4L2_CAP_AUDIO;
@@ -661,7 +661,7 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void  *priv,
 	if (unlikely(f->index >= ARRAY_SIZE(formats)))
 	if (unlikely(f->index >= ARRAY_SIZE(formats)))
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, formats[f->index].name,
+	strscpy(f->description, formats[f->index].name,
 		sizeof(f->description));
 		sizeof(f->description));
 	f->pixelformat = formats[f->index].fourcc;
 	f->pixelformat = formats[f->index].fourcc;
 
 

+ 1 - 1
drivers/media/pci/cx25821/cx25821-i2c.c

@@ -306,7 +306,7 @@ int cx25821_i2c_register(struct cx25821_i2c *bus)
 	bus->i2c_client = cx25821_i2c_client_template;
 	bus->i2c_client = cx25821_i2c_client_template;
 	bus->i2c_adap.dev.parent = &dev->pci->dev;
 	bus->i2c_adap.dev.parent = &dev->pci->dev;
 
 
-	strlcpy(bus->i2c_adap.name, bus->dev->name, sizeof(bus->i2c_adap.name));
+	strscpy(bus->i2c_adap.name, bus->dev->name, sizeof(bus->i2c_adap.name));
 
 
 	bus->i2c_adap.algo_data = bus;
 	bus->i2c_adap.algo_data = bus;
 	i2c_set_adapdata(&bus->i2c_adap, &dev->v4l2_dev);
 	i2c_set_adapdata(&bus->i2c_adap, &dev->v4l2_dev);

+ 2 - 2
drivers/media/pci/cx25821/cx25821-video.c

@@ -322,7 +322,7 @@ static int cx25821_vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
 	if (unlikely(f->index >= ARRAY_SIZE(formats)))
 	if (unlikely(f->index >= ARRAY_SIZE(formats)))
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, formats[f->index].name, sizeof(f->description));
+	strscpy(f->description, formats[f->index].name, sizeof(f->description));
 	f->pixelformat = formats[f->index].fourcc;
 	f->pixelformat = formats[f->index].fourcc;
 
 
 	return 0;
 	return 0;
@@ -442,7 +442,7 @@ static int cx25821_vidioc_querycap(struct file *file, void *priv,
 	const u32 cap_output = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_READWRITE;
 	const u32 cap_output = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_READWRITE;
 
 
 	strcpy(cap->driver, "cx25821");
 	strcpy(cap->driver, "cx25821");
-	strlcpy(cap->card, cx25821_boards[dev->board].name, sizeof(cap->card));
+	strscpy(cap->card, cx25821_boards[dev->board].name, sizeof(cap->card));
 	sprintf(cap->bus_info, "PCIe:%s", pci_name(dev->pci));
 	sprintf(cap->bus_info, "PCIe:%s", pci_name(dev->pci));
 	if (chan->id >= VID_CHANNEL_NUM)
 	if (chan->id >= VID_CHANNEL_NUM)
 		cap->device_caps = cap_output;
 		cap->device_caps = cap_output;

+ 1 - 1
drivers/media/pci/cx88/cx88-blackbird.c

@@ -814,7 +814,7 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void  *priv,
 	if (f->index != 0)
 	if (f->index != 0)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, "MPEG", sizeof(f->description));
+	strscpy(f->description, "MPEG", sizeof(f->description));
 	f->pixelformat = V4L2_PIX_FMT_MPEG;
 	f->pixelformat = V4L2_PIX_FMT_MPEG;
 	f->flags = V4L2_FMT_FLAG_COMPRESSED;
 	f->flags = V4L2_FMT_FLAG_COMPRESSED;
 	return 0;
 	return 0;

+ 2 - 2
drivers/media/pci/cx88/cx88-i2c.c

@@ -140,14 +140,14 @@ int cx88_i2c_init(struct cx88_core *core, struct pci_dev *pci)
 	core->i2c_algo = cx8800_i2c_algo_template;
 	core->i2c_algo = cx8800_i2c_algo_template;
 
 
 	core->i2c_adap.dev.parent = &pci->dev;
 	core->i2c_adap.dev.parent = &pci->dev;
-	strlcpy(core->i2c_adap.name, core->name, sizeof(core->i2c_adap.name));
+	strscpy(core->i2c_adap.name, core->name, sizeof(core->i2c_adap.name));
 	core->i2c_adap.owner = THIS_MODULE;
 	core->i2c_adap.owner = THIS_MODULE;
 	core->i2c_algo.udelay = i2c_udelay;
 	core->i2c_algo.udelay = i2c_udelay;
 	core->i2c_algo.data = core;
 	core->i2c_algo.data = core;
 	i2c_set_adapdata(&core->i2c_adap, &core->v4l2_dev);
 	i2c_set_adapdata(&core->i2c_adap, &core->v4l2_dev);
 	core->i2c_adap.algo_data = &core->i2c_algo;
 	core->i2c_adap.algo_data = &core->i2c_algo;
 	core->i2c_client.adapter = &core->i2c_adap;
 	core->i2c_client.adapter = &core->i2c_adap;
-	strlcpy(core->i2c_client.name, "cx88xx internal", I2C_NAME_SIZE);
+	strscpy(core->i2c_client.name, "cx88xx internal", I2C_NAME_SIZE);
 
 
 	cx8800_bit_setscl(core, 1);
 	cx8800_bit_setscl(core, 1);
 	cx8800_bit_setsda(core, 1);
 	cx8800_bit_setsda(core, 1);

+ 2 - 2
drivers/media/pci/cx88/cx88-input.c

@@ -610,7 +610,7 @@ void cx88_i2c_init_ir(struct cx88_core *core)
 		return;
 		return;
 
 
 	memset(&info, 0, sizeof(struct i2c_board_info));
 	memset(&info, 0, sizeof(struct i2c_board_info));
-	strlcpy(info.type, "ir_video", I2C_NAME_SIZE);
+	strscpy(info.type, "ir_video", I2C_NAME_SIZE);
 
 
 	switch (core->boardnr) {
 	switch (core->boardnr) {
 	case CX88_BOARD_LEADTEK_PVR2000:
 	case CX88_BOARD_LEADTEK_PVR2000:
@@ -635,7 +635,7 @@ void cx88_i2c_init_ir(struct cx88_core *core)
 
 
 		if (*addrp == 0x71) {
 		if (*addrp == 0x71) {
 			/* Hauppauge Z8F0811 */
 			/* Hauppauge Z8F0811 */
-			strlcpy(info.type, "ir_z8f0811_haup", I2C_NAME_SIZE);
+			strscpy(info.type, "ir_z8f0811_haup", I2C_NAME_SIZE);
 			core->init_data.name = core->board.name;
 			core->init_data.name = core->board.name;
 			core->init_data.ir_codes = RC_MAP_HAUPPAUGE;
 			core->init_data.ir_codes = RC_MAP_HAUPPAUGE;
 			core->init_data.type = RC_PROTO_BIT_RC5 |
 			core->init_data.type = RC_PROTO_BIT_RC5 |

+ 2 - 2
drivers/media/pci/cx88/cx88-video.c

@@ -811,7 +811,7 @@ int cx88_querycap(struct file *file, struct cx88_core *core,
 {
 {
 	struct video_device *vdev = video_devdata(file);
 	struct video_device *vdev = video_devdata(file);
 
 
-	strlcpy(cap->card, core->board.name, sizeof(cap->card));
+	strscpy(cap->card, core->board.name, sizeof(cap->card));
 	cap->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING;
 	cap->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING;
 	if (core->board.tuner_type != UNSET)
 	if (core->board.tuner_type != UNSET)
 		cap->device_caps |= V4L2_CAP_TUNER;
 		cap->device_caps |= V4L2_CAP_TUNER;
@@ -853,7 +853,7 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void  *priv,
 	if (unlikely(f->index >= ARRAY_SIZE(formats)))
 	if (unlikely(f->index >= ARRAY_SIZE(formats)))
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, formats[f->index].name, sizeof(f->description));
+	strscpy(f->description, formats[f->index].name, sizeof(f->description));
 	f->pixelformat = formats[f->index].fourcc;
 	f->pixelformat = formats[f->index].fourcc;
 
 
 	return 0;
 	return 0;

+ 1 - 1
drivers/media/pci/cx88/cx88-vp3054-i2c.c

@@ -114,7 +114,7 @@ int vp3054_i2c_probe(struct cx8802_dev *dev)
 	vp3054_i2c->algo = vp3054_i2c_algo_template;
 	vp3054_i2c->algo = vp3054_i2c_algo_template;
 
 
 	vp3054_i2c->adap.dev.parent = &dev->pci->dev;
 	vp3054_i2c->adap.dev.parent = &dev->pci->dev;
-	strlcpy(vp3054_i2c->adap.name, core->name,
+	strscpy(vp3054_i2c->adap.name, core->name,
 		sizeof(vp3054_i2c->adap.name));
 		sizeof(vp3054_i2c->adap.name));
 	vp3054_i2c->adap.owner = THIS_MODULE;
 	vp3054_i2c->adap.owner = THIS_MODULE;
 	vp3054_i2c->algo.data = dev;
 	vp3054_i2c->algo.data = dev;

+ 1 - 1
drivers/media/pci/dt3155/dt3155.c

@@ -378,7 +378,7 @@ static int dt3155_enum_input(struct file *filp, void *p,
 		snprintf(input->name, sizeof(input->name), "VID%d",
 		snprintf(input->name, sizeof(input->name), "VID%d",
 			 input->index);
 			 input->index);
 	else
 	else
-		strlcpy(input->name, "J2/VID0", sizeof(input->name));
+		strscpy(input->name, "J2/VID0", sizeof(input->name));
 	input->type = V4L2_INPUT_TYPE_CAMERA;
 	input->type = V4L2_INPUT_TYPE_CAMERA;
 	input->std = V4L2_STD_ALL;
 	input->std = V4L2_STD_ALL;
 	input->status = 0;
 	input->status = 0;

+ 4 - 4
drivers/media/pci/intel/ipu3/ipu3-cio2.c

@@ -1064,8 +1064,8 @@ static int cio2_v4l2_querycap(struct file *file, void *fh,
 {
 {
 	struct cio2_device *cio2 = video_drvdata(file);
 	struct cio2_device *cio2 = video_drvdata(file);
 
 
-	strlcpy(cap->driver, CIO2_NAME, sizeof(cap->driver));
-	strlcpy(cap->card, CIO2_DEVICE_NAME, sizeof(cap->card));
+	strscpy(cap->driver, CIO2_NAME, sizeof(cap->driver));
+	strscpy(cap->card, CIO2_DEVICE_NAME, sizeof(cap->card));
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 		 "PCI:%s", pci_name(cio2->pci_dev));
 		 "PCI:%s", pci_name(cio2->pci_dev));
 
 
@@ -1143,7 +1143,7 @@ cio2_video_enum_input(struct file *file, void *fh, struct v4l2_input *input)
 	if (input->index > 0)
 	if (input->index > 0)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(input->name, "camera", sizeof(input->name));
+	strscpy(input->name, "camera", sizeof(input->name));
 	input->type = V4L2_INPUT_TYPE_CAMERA;
 	input->type = V4L2_INPUT_TYPE_CAMERA;
 
 
 	return 0;
 	return 0;
@@ -1783,7 +1783,7 @@ static int cio2_pci_probe(struct pci_dev *pci_dev,
 	mutex_init(&cio2->lock);
 	mutex_init(&cio2->lock);
 
 
 	cio2->media_dev.dev = &cio2->pci_dev->dev;
 	cio2->media_dev.dev = &cio2->pci_dev->dev;
-	strlcpy(cio2->media_dev.model, CIO2_DEVICE_NAME,
+	strscpy(cio2->media_dev.model, CIO2_DEVICE_NAME,
 		sizeof(cio2->media_dev.model));
 		sizeof(cio2->media_dev.model));
 	snprintf(cio2->media_dev.bus_info, sizeof(cio2->media_dev.bus_info),
 	snprintf(cio2->media_dev.bus_info, sizeof(cio2->media_dev.bus_info),
 		 "PCI:%s", pci_name(cio2->pci_dev));
 		 "PCI:%s", pci_name(cio2->pci_dev));

+ 1 - 1
drivers/media/pci/ivtv/ivtv-alsa-main.c

@@ -109,7 +109,7 @@ static int snd_ivtv_card_set_names(struct snd_ivtv_card *itvsc)
 	struct snd_card *sc = itvsc->sc;
 	struct snd_card *sc = itvsc->sc;
 
 
 	/* sc->driver is used by alsa-lib's configurator: simple, unique */
 	/* sc->driver is used by alsa-lib's configurator: simple, unique */
-	strlcpy(sc->driver, "CX2341[56]", sizeof(sc->driver));
+	strscpy(sc->driver, "CX2341[56]", sizeof(sc->driver));
 
 
 	/* sc->shortname is a symlink in /proc/asound: IVTV-M -> cardN */
 	/* sc->shortname is a symlink in /proc/asound: IVTV-M -> cardN */
 	snprintf(sc->shortname,  sizeof(sc->shortname), "IVTV-%d",
 	snprintf(sc->shortname,  sizeof(sc->shortname), "IVTV-%d",

+ 1 - 1
drivers/media/pci/ivtv/ivtv-alsa-pcm.c

@@ -350,7 +350,7 @@ int snd_ivtv_pcm_create(struct snd_ivtv_card *itvsc)
 			&snd_ivtv_pcm_capture_ops);
 			&snd_ivtv_pcm_capture_ops);
 	sp->info_flags = 0;
 	sp->info_flags = 0;
 	sp->private_data = itvsc;
 	sp->private_data = itvsc;
-	strlcpy(sp->name, itv->card_name, sizeof(sp->name));
+	strscpy(sp->name, itv->card_name, sizeof(sp->name));
 
 
 	return 0;
 	return 0;
 
 

+ 6 - 6
drivers/media/pci/ivtv/ivtv-cards.c

@@ -1317,8 +1317,8 @@ int ivtv_get_input(struct ivtv *itv, u16 index, struct v4l2_input *input)
 	if (index >= itv->nof_inputs)
 	if (index >= itv->nof_inputs)
 		return -EINVAL;
 		return -EINVAL;
 	input->index = index;
 	input->index = index;
-	strlcpy(input->name, input_strs[card_input->video_type - 1],
-			sizeof(input->name));
+	strscpy(input->name, input_strs[card_input->video_type - 1],
+		sizeof(input->name));
 	input->type = (card_input->video_type == IVTV_CARD_INPUT_VID_TUNER ?
 	input->type = (card_input->video_type == IVTV_CARD_INPUT_VID_TUNER ?
 			V4L2_INPUT_TYPE_TUNER : V4L2_INPUT_TYPE_CAMERA);
 			V4L2_INPUT_TYPE_TUNER : V4L2_INPUT_TYPE_CAMERA);
 	input->audioset = (1 << itv->nof_audio_inputs) - 1;
 	input->audioset = (1 << itv->nof_audio_inputs) - 1;
@@ -1334,7 +1334,7 @@ int ivtv_get_output(struct ivtv *itv, u16 index, struct v4l2_output *output)
 	if (index >= itv->card->nof_outputs)
 	if (index >= itv->card->nof_outputs)
 		return -EINVAL;
 		return -EINVAL;
 	output->index = index;
 	output->index = index;
-	strlcpy(output->name, card_output->name, sizeof(output->name));
+	strscpy(output->name, card_output->name, sizeof(output->name));
 	output->type = V4L2_OUTPUT_TYPE_ANALOG;
 	output->type = V4L2_OUTPUT_TYPE_ANALOG;
 	output->audioset = 1;
 	output->audioset = 1;
 	output->std = V4L2_STD_ALL;
 	output->std = V4L2_STD_ALL;
@@ -1353,8 +1353,8 @@ int ivtv_get_audio_input(struct ivtv *itv, u16 index, struct v4l2_audio *audio)
 	memset(audio, 0, sizeof(*audio));
 	memset(audio, 0, sizeof(*audio));
 	if (index >= itv->nof_audio_inputs)
 	if (index >= itv->nof_audio_inputs)
 		return -EINVAL;
 		return -EINVAL;
-	strlcpy(audio->name, input_strs[aud_input->audio_type - 1],
-			sizeof(audio->name));
+	strscpy(audio->name, input_strs[aud_input->audio_type - 1],
+		sizeof(audio->name));
 	audio->index = index;
 	audio->index = index;
 	audio->capability = V4L2_AUDCAP_STEREO;
 	audio->capability = V4L2_AUDCAP_STEREO;
 	return 0;
 	return 0;
@@ -1365,6 +1365,6 @@ int ivtv_get_audio_output(struct ivtv *itv, u16 index, struct v4l2_audioout *aud
 	memset(aud_output, 0, sizeof(*aud_output));
 	memset(aud_output, 0, sizeof(*aud_output));
 	if (itv->card->video_outputs == NULL || index != 0)
 	if (itv->card->video_outputs == NULL || index != 0)
 		return -EINVAL;
 		return -EINVAL;
-	strlcpy(aud_output->name, "A/V Audio Out", sizeof(aud_output->name));
+	strscpy(aud_output->name, "A/V Audio Out", sizeof(aud_output->name));
 	return 0;
 	return 0;
 }
 }

+ 2 - 2
drivers/media/pci/ivtv/ivtv-i2c.c

@@ -218,7 +218,7 @@ static int ivtv_i2c_new_ir(struct ivtv *itv, u32 hw, const char *type, u8 addr)
 
 
 	memset(&info, 0, sizeof(struct i2c_board_info));
 	memset(&info, 0, sizeof(struct i2c_board_info));
 	info.platform_data = init_data;
 	info.platform_data = init_data;
-	strlcpy(info.type, type, I2C_NAME_SIZE);
+	strscpy(info.type, type, I2C_NAME_SIZE);
 
 
 	return i2c_new_probed_device(adap, &info, addr_list, NULL) == NULL ?
 	return i2c_new_probed_device(adap, &info, addr_list, NULL) == NULL ?
 	       -1 : 0;
 	       -1 : 0;
@@ -246,7 +246,7 @@ struct i2c_client *ivtv_i2c_new_ir_legacy(struct ivtv *itv)
 	};
 	};
 
 
 	memset(&info, 0, sizeof(struct i2c_board_info));
 	memset(&info, 0, sizeof(struct i2c_board_info));
-	strlcpy(info.type, "ir_video", I2C_NAME_SIZE);
+	strscpy(info.type, "ir_video", I2C_NAME_SIZE);
 	return i2c_new_probed_device(&itv->i2c_adap, &info, addr_list, NULL);
 	return i2c_new_probed_device(&itv->i2c_adap, &info, addr_list, NULL);
 }
 }
 
 

+ 4 - 4
drivers/media/pci/ivtv/ivtv-ioctl.c

@@ -747,8 +747,8 @@ static int ivtv_querycap(struct file *file, void *fh, struct v4l2_capability *vc
 	struct ivtv *itv = id->itv;
 	struct ivtv *itv = id->itv;
 	struct ivtv_stream *s = &itv->streams[id->type];
 	struct ivtv_stream *s = &itv->streams[id->type];
 
 
-	strlcpy(vcap->driver, IVTV_DRIVER_NAME, sizeof(vcap->driver));
-	strlcpy(vcap->card, itv->card_name, sizeof(vcap->card));
+	strscpy(vcap->driver, IVTV_DRIVER_NAME, sizeof(vcap->driver));
+	strscpy(vcap->card, itv->card_name, sizeof(vcap->card));
 	snprintf(vcap->bus_info, sizeof(vcap->bus_info), "PCI:%s", pci_name(itv->pdev));
 	snprintf(vcap->bus_info, sizeof(vcap->bus_info), "PCI:%s", pci_name(itv->pdev));
 	vcap->capabilities = itv->v4l2_cap | V4L2_CAP_DEVICE_CAPS;
 	vcap->capabilities = itv->v4l2_cap | V4L2_CAP_DEVICE_CAPS;
 	vcap->device_caps = s->caps;
 	vcap->device_caps = s->caps;
@@ -1227,9 +1227,9 @@ static int ivtv_g_tuner(struct file *file, void *fh, struct v4l2_tuner *vt)
 	ivtv_call_all(itv, tuner, g_tuner, vt);
 	ivtv_call_all(itv, tuner, g_tuner, vt);
 
 
 	if (vt->type == V4L2_TUNER_RADIO)
 	if (vt->type == V4L2_TUNER_RADIO)
-		strlcpy(vt->name, "ivtv Radio Tuner", sizeof(vt->name));
+		strscpy(vt->name, "ivtv Radio Tuner", sizeof(vt->name));
 	else
 	else
-		strlcpy(vt->name, "ivtv TV Tuner", sizeof(vt->name));
+		strscpy(vt->name, "ivtv TV Tuner", sizeof(vt->name));
 	return 0;
 	return 0;
 }
 }
 
 

+ 1 - 1
drivers/media/pci/ivtv/ivtvfb.c

@@ -624,7 +624,7 @@ static int ivtvfb_get_fix(struct ivtv *itv, struct fb_fix_screeninfo *fix)
 
 
 	IVTVFB_DEBUG_INFO("ivtvfb_get_fix\n");
 	IVTVFB_DEBUG_INFO("ivtvfb_get_fix\n");
 	memset(fix, 0, sizeof(struct fb_fix_screeninfo));
 	memset(fix, 0, sizeof(struct fb_fix_screeninfo));
-	strlcpy(fix->id, "cx23415 TV out", sizeof(fix->id));
+	strscpy(fix->id, "cx23415 TV out", sizeof(fix->id));
 	fix->smem_start = oi->video_pbase;
 	fix->smem_start = oi->video_pbase;
 	fix->smem_len = oi->video_buffer_size;
 	fix->smem_len = oi->video_buffer_size;
 	fix->type = FB_TYPE_PACKED_PIXELS;
 	fix->type = FB_TYPE_PACKED_PIXELS;

+ 1 - 1
drivers/media/pci/pt3/pt3.c

@@ -765,7 +765,7 @@ static int pt3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	i2c->algo = &pt3_i2c_algo;
 	i2c->algo = &pt3_i2c_algo;
 	i2c->algo_data = NULL;
 	i2c->algo_data = NULL;
 	i2c->dev.parent = &pdev->dev;
 	i2c->dev.parent = &pdev->dev;
-	strlcpy(i2c->name, DRV_NAME, sizeof(i2c->name));
+	strscpy(i2c->name, DRV_NAME, sizeof(i2c->name));
 	i2c_set_adapdata(i2c, pt3);
 	i2c_set_adapdata(i2c, pt3);
 	ret = i2c_add_adapter(i2c);
 	ret = i2c_add_adapter(i2c);
 	if (ret < 0)
 	if (ret < 0)

+ 1 - 1
drivers/media/pci/saa7134/saa7134-empress.c

@@ -100,7 +100,7 @@ static int empress_enum_fmt_vid_cap(struct file *file, void  *priv,
 	if (f->index != 0)
 	if (f->index != 0)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, "MPEG TS", sizeof(f->description));
+	strscpy(f->description, "MPEG TS", sizeof(f->description));
 	f->pixelformat = V4L2_PIX_FMT_MPEG;
 	f->pixelformat = V4L2_PIX_FMT_MPEG;
 	f->flags = V4L2_FMT_FLAG_COMPRESSED;
 	f->flags = V4L2_FMT_FLAG_COMPRESSED;
 	return 0;
 	return 0;

+ 1 - 1
drivers/media/pci/saa7134/saa7134-go7007.c

@@ -435,7 +435,7 @@ static int saa7134_go7007_init(struct saa7134_dev *dev)
 
 
 	go->board_id = GO7007_BOARDID_PCI_VOYAGER;
 	go->board_id = GO7007_BOARDID_PCI_VOYAGER;
 	snprintf(go->bus_info, sizeof(go->bus_info), "PCI:%s", pci_name(dev->pci));
 	snprintf(go->bus_info, sizeof(go->bus_info), "PCI:%s", pci_name(dev->pci));
-	strlcpy(go->name, saa7134_boards[dev->board].name, sizeof(go->name));
+	strscpy(go->name, saa7134_boards[dev->board].name, sizeof(go->name));
 	go->hpi_ops = &saa7134_go7007_hpi_ops;
 	go->hpi_ops = &saa7134_go7007_hpi_ops;
 	go->hpi_context = saa;
 	go->hpi_context = saa;
 	saa->dev = dev;
 	saa->dev = dev;

+ 1 - 1
drivers/media/pci/saa7134/saa7134-input.c

@@ -953,7 +953,7 @@ void saa7134_probe_i2c_ir(struct saa7134_dev *dev)
 
 
 	memset(&info, 0, sizeof(struct i2c_board_info));
 	memset(&info, 0, sizeof(struct i2c_board_info));
 	memset(&dev->init_data, 0, sizeof(dev->init_data));
 	memset(&dev->init_data, 0, sizeof(dev->init_data));
-	strlcpy(info.type, "ir_video", I2C_NAME_SIZE);
+	strscpy(info.type, "ir_video", I2C_NAME_SIZE);
 
 
 	switch (dev->board) {
 	switch (dev->board) {
 	case SAA7134_BOARD_PINNACLE_PCTV_110i:
 	case SAA7134_BOARD_PINNACLE_PCTV_110i:

+ 3 - 3
drivers/media/pci/saa7134/saa7134-video.c

@@ -1503,7 +1503,7 @@ int saa7134_querycap(struct file *file, void *priv,
 	unsigned int tuner_type = dev->tuner_type;
 	unsigned int tuner_type = dev->tuner_type;
 
 
 	strcpy(cap->driver, "saa7134");
 	strcpy(cap->driver, "saa7134");
-	strlcpy(cap->card, saa7134_boards[dev->board].name,
+	strscpy(cap->card, saa7134_boards[dev->board].name,
 		sizeof(cap->card));
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
 
 
@@ -1819,7 +1819,7 @@ static int saa7134_enum_fmt_vid_cap(struct file *file, void  *priv,
 	if (f->index >= FORMATS)
 	if (f->index >= FORMATS)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, formats[f->index].name,
+	strscpy(f->description, formats[f->index].name,
 		sizeof(f->description));
 		sizeof(f->description));
 
 
 	f->pixelformat = formats[f->index].fourcc;
 	f->pixelformat = formats[f->index].fourcc;
@@ -1838,7 +1838,7 @@ static int saa7134_enum_fmt_vid_overlay(struct file *file, void  *priv,
 	if ((f->index >= FORMATS) || formats[f->index].planar)
 	if ((f->index >= FORMATS) || formats[f->index].planar)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, formats[f->index].name,
+	strscpy(f->description, formats[f->index].name,
 		sizeof(f->description));
 		sizeof(f->description));
 
 
 	f->pixelformat = formats[f->index].fourcc;
 	f->pixelformat = formats[f->index].fourcc;

+ 1 - 1
drivers/media/pci/saa7146/mxb.c

@@ -553,7 +553,7 @@ static int vidioc_g_tuner(struct file *file, void *fh, struct v4l2_tuner *t)
 	DEB_EE("VIDIOC_G_TUNER: %d\n", t->index);
 	DEB_EE("VIDIOC_G_TUNER: %d\n", t->index);
 
 
 	memset(t, 0, sizeof(*t));
 	memset(t, 0, sizeof(*t));
-	strlcpy(t->name, "TV Tuner", sizeof(t->name));
+	strscpy(t->name, "TV Tuner", sizeof(t->name));
 	t->type = V4L2_TUNER_ANALOG_TV;
 	t->type = V4L2_TUNER_ANALOG_TV;
 	t->capability = V4L2_TUNER_CAP_NORM | V4L2_TUNER_CAP_STEREO |
 	t->capability = V4L2_TUNER_CAP_NORM | V4L2_TUNER_CAP_STEREO |
 			V4L2_TUNER_CAP_LANG1 | V4L2_TUNER_CAP_LANG2 | V4L2_TUNER_CAP_SAP;
 			V4L2_TUNER_CAP_LANG1 | V4L2_TUNER_CAP_LANG2 | V4L2_TUNER_CAP_SAP;

+ 5 - 5
drivers/media/pci/saa7164/saa7164-dvb.c

@@ -120,7 +120,7 @@ static int si2157_attach(struct saa7164_port *port, struct i2c_adapter *adapter,
 
 
 	memset(&bi, 0, sizeof(bi));
 	memset(&bi, 0, sizeof(bi));
 
 
-	strlcpy(bi.type, "si2157", I2C_NAME_SIZE);
+	strscpy(bi.type, "si2157", I2C_NAME_SIZE);
 	bi.platform_data = cfg;
 	bi.platform_data = cfg;
 	bi.addr = addr8bit >> 1;
 	bi.addr = addr8bit >> 1;
 
 
@@ -643,7 +643,7 @@ int saa7164_dvb_register(struct saa7164_port *port)
 			si2168_config.fe = &port->dvb.frontend;
 			si2168_config.fe = &port->dvb.frontend;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2168", I2C_NAME_SIZE);
+			strscpy(info.type, "si2168", I2C_NAME_SIZE);
 			info.addr = 0xc8 >> 1;
 			info.addr = 0xc8 >> 1;
 			info.platform_data = &si2168_config;
 			info.platform_data = &si2168_config;
 			request_module(info.type);
 			request_module(info.type);
@@ -663,7 +663,7 @@ int saa7164_dvb_register(struct saa7164_port *port)
 			si2157_config.if_port = 1;
 			si2157_config.if_port = 1;
 			si2157_config.fe = port->dvb.frontend;
 			si2157_config.fe = port->dvb.frontend;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+			strscpy(info.type, "si2157", I2C_NAME_SIZE);
 			info.addr = 0xc0 >> 1;
 			info.addr = 0xc0 >> 1;
 			info.platform_data = &si2157_config;
 			info.platform_data = &si2157_config;
 			request_module(info.type);
 			request_module(info.type);
@@ -688,7 +688,7 @@ int saa7164_dvb_register(struct saa7164_port *port)
 			si2168_config.fe = &port->dvb.frontend;
 			si2168_config.fe = &port->dvb.frontend;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			si2168_config.ts_mode = SI2168_TS_SERIAL;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2168", I2C_NAME_SIZE);
+			strscpy(info.type, "si2168", I2C_NAME_SIZE);
 			info.addr = 0xcc >> 1;
 			info.addr = 0xcc >> 1;
 			info.platform_data = &si2168_config;
 			info.platform_data = &si2168_config;
 			request_module(info.type);
 			request_module(info.type);
@@ -708,7 +708,7 @@ int saa7164_dvb_register(struct saa7164_port *port)
 			si2157_config.fe = port->dvb.frontend;
 			si2157_config.fe = port->dvb.frontend;
 			si2157_config.if_port = 1;
 			si2157_config.if_port = 1;
 			memset(&info, 0, sizeof(struct i2c_board_info));
 			memset(&info, 0, sizeof(struct i2c_board_info));
-			strlcpy(info.type, "si2157", I2C_NAME_SIZE);
+			strscpy(info.type, "si2157", I2C_NAME_SIZE);
 			info.addr = 0xc0 >> 1;
 			info.addr = 0xc0 >> 1;
 			info.platform_data = &si2157_config;
 			info.platform_data = &si2157_config;
 			request_module(info.type);
 			request_module(info.type);

+ 2 - 2
drivers/media/pci/saa7164/saa7164-encoder.c

@@ -498,7 +498,7 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	struct saa7164_dev *dev = port->dev;
 	struct saa7164_dev *dev = port->dev;
 
 
 	strcpy(cap->driver, dev->name);
 	strcpy(cap->driver, dev->name);
-	strlcpy(cap->card, saa7164_boards[dev->board].name,
+	strscpy(cap->card, saa7164_boards[dev->board].name,
 		sizeof(cap->card));
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
 
 
@@ -520,7 +520,7 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void  *priv,
 	if (f->index != 0)
 	if (f->index != 0)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, "MPEG", sizeof(f->description));
+	strscpy(f->description, "MPEG", sizeof(f->description));
 	f->pixelformat = V4L2_PIX_FMT_MPEG;
 	f->pixelformat = V4L2_PIX_FMT_MPEG;
 
 
 	return 0;
 	return 0;

+ 1 - 1
drivers/media/pci/saa7164/saa7164-i2c.c

@@ -99,7 +99,7 @@ int saa7164_i2c_register(struct saa7164_i2c *bus)
 
 
 	bus->i2c_adap.dev.parent = &dev->pci->dev;
 	bus->i2c_adap.dev.parent = &dev->pci->dev;
 
 
-	strlcpy(bus->i2c_adap.name, bus->dev->name,
+	strscpy(bus->i2c_adap.name, bus->dev->name,
 		sizeof(bus->i2c_adap.name));
 		sizeof(bus->i2c_adap.name));
 
 
 	bus->i2c_adap.algo_data = bus;
 	bus->i2c_adap.algo_data = bus;

+ 1 - 1
drivers/media/pci/saa7164/saa7164-vbi.c

@@ -209,7 +209,7 @@ static int vidioc_querycap(struct file *file, void  *priv,
 	struct saa7164_dev *dev = port->dev;
 	struct saa7164_dev *dev = port->dev;
 
 
 	strcpy(cap->driver, dev->name);
 	strcpy(cap->driver, dev->name);
-	strlcpy(cap->card, saa7164_boards[dev->board].name,
+	strscpy(cap->card, saa7164_boards[dev->board].name,
 		sizeof(cap->card));
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
 
 

+ 4 - 4
drivers/media/pci/smipcie/smipcie-main.c

@@ -549,7 +549,7 @@ static int smi_dvbsky_m88ds3103_fe_attach(struct smi_port *port)
 	}
 	}
 	/* attach tuner */
 	/* attach tuner */
 	ts2020_config.fe = port->fe;
 	ts2020_config.fe = port->fe;
-	strlcpy(tuner_info.type, "ts2020", I2C_NAME_SIZE);
+	strscpy(tuner_info.type, "ts2020", I2C_NAME_SIZE);
 	tuner_info.addr = 0x60;
 	tuner_info.addr = 0x60;
 	tuner_info.platform_data = &ts2020_config;
 	tuner_info.platform_data = &ts2020_config;
 	tuner_client = smi_add_i2c_client(tuner_i2c_adapter, &tuner_info);
 	tuner_client = smi_add_i2c_client(tuner_i2c_adapter, &tuner_info);
@@ -605,7 +605,7 @@ static int smi_dvbsky_m88rs6000_fe_attach(struct smi_port *port)
 	}
 	}
 	/* attach tuner */
 	/* attach tuner */
 	m88rs6000t_config.fe = port->fe;
 	m88rs6000t_config.fe = port->fe;
-	strlcpy(tuner_info.type, "m88rs6000t", I2C_NAME_SIZE);
+	strscpy(tuner_info.type, "m88rs6000t", I2C_NAME_SIZE);
 	tuner_info.addr = 0x21;
 	tuner_info.addr = 0x21;
 	tuner_info.platform_data = &m88rs6000t_config;
 	tuner_info.platform_data = &m88rs6000t_config;
 	tuner_client = smi_add_i2c_client(tuner_i2c_adapter, &tuner_info);
 	tuner_client = smi_add_i2c_client(tuner_i2c_adapter, &tuner_info);
@@ -647,7 +647,7 @@ static int smi_dvbsky_sit2_fe_attach(struct smi_port *port)
 	si2168_config.ts_mode = SI2168_TS_PARALLEL;
 	si2168_config.ts_mode = SI2168_TS_PARALLEL;
 
 
 	memset(&client_info, 0, sizeof(struct i2c_board_info));
 	memset(&client_info, 0, sizeof(struct i2c_board_info));
-	strlcpy(client_info.type, "si2168", I2C_NAME_SIZE);
+	strscpy(client_info.type, "si2168", I2C_NAME_SIZE);
 	client_info.addr = 0x64;
 	client_info.addr = 0x64;
 	client_info.platform_data = &si2168_config;
 	client_info.platform_data = &si2168_config;
 
 
@@ -664,7 +664,7 @@ static int smi_dvbsky_sit2_fe_attach(struct smi_port *port)
 	si2157_config.if_port = 1;
 	si2157_config.if_port = 1;
 
 
 	memset(&client_info, 0, sizeof(struct i2c_board_info));
 	memset(&client_info, 0, sizeof(struct i2c_board_info));
-	strlcpy(client_info.type, "si2157", I2C_NAME_SIZE);
+	strscpy(client_info.type, "si2157", I2C_NAME_SIZE);
 	client_info.addr = 0x60;
 	client_info.addr = 0x60;
 	client_info.platform_data = &si2157_config;
 	client_info.platform_data = &si2157_config;
 
 

+ 1 - 1
drivers/media/pci/solo6x10/solo6x10-v4l2.c

@@ -470,7 +470,7 @@ static int solo_enum_fmt_cap(struct file *file, void *priv,
 		return -EINVAL;
 		return -EINVAL;
 
 
 	f->pixelformat = V4L2_PIX_FMT_UYVY;
 	f->pixelformat = V4L2_PIX_FMT_UYVY;
-	strlcpy(f->description, "UYUV 4:2:2 Packed", sizeof(f->description));
+	strscpy(f->description, "UYUV 4:2:2 Packed", sizeof(f->description));
 
 
 	return 0;
 	return 0;
 }
 }

+ 2 - 1
drivers/media/pci/ttpci/av7110.c

@@ -2482,7 +2482,8 @@ static int av7110_attach(struct saa7146_dev* dev,
 	   get recognized before the main driver is fully loaded */
 	   get recognized before the main driver is fully loaded */
 	saa7146_write(dev, GPIO_CTRL, 0x500000);
 	saa7146_write(dev, GPIO_CTRL, 0x500000);
 
 
-	strlcpy(av7110->i2c_adap.name, pci_ext->ext_priv, sizeof(av7110->i2c_adap.name));
+	strscpy(av7110->i2c_adap.name, pci_ext->ext_priv,
+		sizeof(av7110->i2c_adap.name));
 
 
 	saa7146_i2c_adapter_prepare(dev, &av7110->i2c_adap, SAA7146_I2C_BUS_BIT_RATE_120); /* 275 kHz */
 	saa7146_i2c_adapter_prepare(dev, &av7110->i2c_adap, SAA7146_I2C_BUS_BIT_RATE_120); /* 275 kHz */
 
 

+ 2 - 1
drivers/media/pci/ttpci/budget-core.c

@@ -504,7 +504,8 @@ int ttpci_budget_init(struct budget *budget, struct saa7146_dev *dev,
 	if (bi->type != BUDGET_FS_ACTIVY)
 	if (bi->type != BUDGET_FS_ACTIVY)
 		saa7146_write(dev, GPIO_CTRL, 0x500000);	/* GPIO 3 = 1 */
 		saa7146_write(dev, GPIO_CTRL, 0x500000);	/* GPIO 3 = 1 */
 
 
-	strlcpy(budget->i2c_adap.name, budget->card->name, sizeof(budget->i2c_adap.name));
+	strscpy(budget->i2c_adap.name, budget->card->name,
+		sizeof(budget->i2c_adap.name));
 
 
 	saa7146_i2c_adapter_prepare(dev, &budget->i2c_adap, SAA7146_I2C_BUS_BIT_RATE_120);
 	saa7146_i2c_adapter_prepare(dev, &budget->i2c_adap, SAA7146_I2C_BUS_BIT_RATE_120);
 	strcpy(budget->i2c_adap.name, budget->card->name);
 	strcpy(budget->i2c_adap.name, budget->card->name);

+ 2 - 2
drivers/media/pci/tw68/tw68-video.c

@@ -735,7 +735,7 @@ static int tw68_querycap(struct file *file, void  *priv,
 	struct tw68_dev *dev = video_drvdata(file);
 	struct tw68_dev *dev = video_drvdata(file);
 
 
 	strcpy(cap->driver, "tw68");
 	strcpy(cap->driver, "tw68");
-	strlcpy(cap->card, "Techwell Capture Card",
+	strscpy(cap->card, "Techwell Capture Card",
 		sizeof(cap->card));
 		sizeof(cap->card));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
 	sprintf(cap->bus_info, "PCI:%s", pci_name(dev->pci));
 	cap->device_caps =
 	cap->device_caps =
@@ -789,7 +789,7 @@ static int tw68_enum_fmt_vid_cap(struct file *file, void  *priv,
 	if (f->index >= FORMATS)
 	if (f->index >= FORMATS)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, formats[f->index].name,
+	strscpy(f->description, formats[f->index].name,
 		sizeof(f->description));
 		sizeof(f->description));
 
 
 	f->pixelformat = formats[f->index].fourcc;
 	f->pixelformat = formats[f->index].fourcc;

+ 4 - 4
drivers/media/pci/tw686x/tw686x-audio.c

@@ -295,7 +295,7 @@ static int tw686x_snd_pcm_init(struct tw686x_dev *dev)
 	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &tw686x_pcm_ops);
 	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &tw686x_pcm_ops);
 	snd_pcm_chip(pcm) = dev;
 	snd_pcm_chip(pcm) = dev;
 	pcm->info_flags = 0;
 	pcm->info_flags = 0;
-	strlcpy(pcm->name, "tw686x PCM", sizeof(pcm->name));
+	strscpy(pcm->name, "tw686x PCM", sizeof(pcm->name));
 
 
 	for (i = 0, ss = pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream;
 	for (i = 0, ss = pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream;
 	     ss; ss = ss->next, i++)
 	     ss; ss = ss->next, i++)
@@ -390,9 +390,9 @@ int tw686x_audio_init(struct tw686x_dev *dev)
 		return err;
 		return err;
 
 
 	dev->snd_card = card;
 	dev->snd_card = card;
-	strlcpy(card->driver, "tw686x", sizeof(card->driver));
-	strlcpy(card->shortname, "tw686x", sizeof(card->shortname));
-	strlcpy(card->longname, pci_name(pci_dev), sizeof(card->longname));
+	strscpy(card->driver, "tw686x", sizeof(card->driver));
+	strscpy(card->shortname, "tw686x", sizeof(card->shortname));
+	strscpy(card->longname, pci_name(pci_dev), sizeof(card->longname));
 	snd_card_set_dev(card, &pci_dev->dev);
 	snd_card_set_dev(card, &pci_dev->dev);
 
 
 	for (ch = 0; ch < max_channels(dev); ch++) {
 	for (ch = 0; ch < max_channels(dev); ch++) {

+ 2 - 2
drivers/media/pci/tw686x/tw686x-video.c

@@ -765,8 +765,8 @@ static int tw686x_querycap(struct file *file, void *priv,
 	struct tw686x_video_channel *vc = video_drvdata(file);
 	struct tw686x_video_channel *vc = video_drvdata(file);
 	struct tw686x_dev *dev = vc->dev;
 	struct tw686x_dev *dev = vc->dev;
 
 
-	strlcpy(cap->driver, "tw686x", sizeof(cap->driver));
-	strlcpy(cap->card, dev->name, sizeof(cap->card));
+	strscpy(cap->driver, "tw686x", sizeof(cap->driver));
+	strscpy(cap->card, dev->name, sizeof(cap->card));
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 		 "PCI:%s", pci_name(dev->pci_dev));
 		 "PCI:%s", pci_name(dev->pci_dev));
 	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
 	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |

+ 3 - 3
drivers/media/platform/am437x/am437x-vpfe.c

@@ -1408,8 +1408,8 @@ static int vpfe_querycap(struct file *file, void  *priv,
 
 
 	vpfe_dbg(2, vpfe, "vpfe_querycap\n");
 	vpfe_dbg(2, vpfe, "vpfe_querycap\n");
 
 
-	strlcpy(cap->driver, VPFE_MODULE_NAME, sizeof(cap->driver));
-	strlcpy(cap->card, "TI AM437x VPFE", sizeof(cap->card));
+	strscpy(cap->driver, VPFE_MODULE_NAME, sizeof(cap->driver));
+	strscpy(cap->card, "TI AM437x VPFE", sizeof(cap->card));
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 			"platform:%s", vpfe->v4l2_dev.name);
 			"platform:%s", vpfe->v4l2_dev.name);
 	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
 	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
@@ -2386,7 +2386,7 @@ static int vpfe_probe_complete(struct vpfe_device *vpfe)
 	INIT_LIST_HEAD(&vpfe->dma_queue);
 	INIT_LIST_HEAD(&vpfe->dma_queue);
 
 
 	vdev = &vpfe->video_dev;
 	vdev = &vpfe->video_dev;
-	strlcpy(vdev->name, VPFE_MODULE_NAME, sizeof(vdev->name));
+	strscpy(vdev->name, VPFE_MODULE_NAME, sizeof(vdev->name));
 	vdev->release = video_device_release_empty;
 	vdev->release = video_device_release_empty;
 	vdev->fops = &vpfe_fops;
 	vdev->fops = &vpfe_fops;
 	vdev->ioctl_ops = &vpfe_ioctl_ops;
 	vdev->ioctl_ops = &vpfe_ioctl_ops;

+ 1 - 1
drivers/media/platform/atmel/atmel-isc.c

@@ -1951,7 +1951,7 @@ static int isc_async_complete(struct v4l2_async_notifier *notifier)
 	INIT_WORK(&isc->awb_work, isc_awb_work);
 	INIT_WORK(&isc->awb_work, isc_awb_work);
 
 
 	/* Register video device */
 	/* Register video device */
-	strlcpy(vdev->name, ATMEL_ISC_NAME, sizeof(vdev->name));
+	strscpy(vdev->name, ATMEL_ISC_NAME, sizeof(vdev->name));
 	vdev->release		= video_device_release_empty;
 	vdev->release		= video_device_release_empty;
 	vdev->fops		= &isc_fops;
 	vdev->fops		= &isc_fops;
 	vdev->ioctl_ops		= &isc_ioctl_ops;
 	vdev->ioctl_ops		= &isc_ioctl_ops;

+ 5 - 5
drivers/media/platform/atmel/atmel-isi.c

@@ -655,9 +655,9 @@ static int isi_enum_fmt_vid_cap(struct file *file, void  *priv,
 static int isi_querycap(struct file *file, void *priv,
 static int isi_querycap(struct file *file, void *priv,
 			struct v4l2_capability *cap)
 			struct v4l2_capability *cap)
 {
 {
-	strlcpy(cap->driver, "atmel-isi", sizeof(cap->driver));
-	strlcpy(cap->card, "Atmel Image Sensor Interface", sizeof(cap->card));
-	strlcpy(cap->bus_info, "platform:isi", sizeof(cap->bus_info));
+	strscpy(cap->driver, "atmel-isi", sizeof(cap->driver));
+	strscpy(cap->card, "Atmel Image Sensor Interface", sizeof(cap->card));
+	strscpy(cap->bus_info, "platform:isi", sizeof(cap->bus_info));
 	return 0;
 	return 0;
 }
 }
 
 
@@ -668,7 +668,7 @@ static int isi_enum_input(struct file *file, void *priv,
 		return -EINVAL;
 		return -EINVAL;
 
 
 	i->type = V4L2_INPUT_TYPE_CAMERA;
 	i->type = V4L2_INPUT_TYPE_CAMERA;
-	strlcpy(i->name, "Camera", sizeof(i->name));
+	strscpy(i->name, "Camera", sizeof(i->name));
 	return 0;
 	return 0;
 }
 }
 
 
@@ -1202,7 +1202,7 @@ static int atmel_isi_probe(struct platform_device *pdev)
 	isi->vdev->fops = &isi_fops;
 	isi->vdev->fops = &isi_fops;
 	isi->vdev->v4l2_dev = &isi->v4l2_dev;
 	isi->vdev->v4l2_dev = &isi->v4l2_dev;
 	isi->vdev->queue = &isi->queue;
 	isi->vdev->queue = &isi->queue;
-	strlcpy(isi->vdev->name, KBUILD_MODNAME, sizeof(isi->vdev->name));
+	strscpy(isi->vdev->name, KBUILD_MODNAME, sizeof(isi->vdev->name));
 	isi->vdev->release = video_device_release;
 	isi->vdev->release = video_device_release;
 	isi->vdev->ioctl_ops = &isi_ioctl_ops;
 	isi->vdev->ioctl_ops = &isi_ioctl_ops;
 	isi->vdev->lock = &isi->lock;
 	isi->vdev->lock = &isi->lock;

+ 4 - 4
drivers/media/platform/coda/coda-common.c

@@ -390,10 +390,10 @@ static int coda_querycap(struct file *file, void *priv,
 {
 {
 	struct coda_ctx *ctx = fh_to_ctx(priv);
 	struct coda_ctx *ctx = fh_to_ctx(priv);
 
 
-	strlcpy(cap->driver, CODA_NAME, sizeof(cap->driver));
-	strlcpy(cap->card, coda_product_name(ctx->dev->devtype->product),
+	strscpy(cap->driver, CODA_NAME, sizeof(cap->driver));
+	strscpy(cap->card, coda_product_name(ctx->dev->devtype->product),
 		sizeof(cap->card));
 		sizeof(cap->card));
-	strlcpy(cap->bus_info, "platform:" CODA_NAME, sizeof(cap->bus_info));
+	strscpy(cap->bus_info, "platform:" CODA_NAME, sizeof(cap->bus_info));
 	cap->device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING;
 	cap->device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING;
 	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 
 
@@ -2408,7 +2408,7 @@ static int coda_register_device(struct coda_dev *dev, int i)
 	if (i >= dev->devtype->num_vdevs)
 	if (i >= dev->devtype->num_vdevs)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(vfd->name, dev->devtype->vdevs[i]->name, sizeof(vfd->name));
+	strscpy(vfd->name, dev->devtype->vdevs[i]->name, sizeof(vfd->name));
 	vfd->fops	= &coda_fops;
 	vfd->fops	= &coda_fops;
 	vfd->ioctl_ops	= &coda_ioctl_ops;
 	vfd->ioctl_ops	= &coda_ioctl_ops;
 	vfd->release	= video_device_release_empty,
 	vfd->release	= video_device_release_empty,

+ 1 - 1
drivers/media/platform/davinci/vpbe_display.c

@@ -647,7 +647,7 @@ static int vpbe_display_querycap(struct file *file, void  *priv,
 		dev_name(vpbe_dev->pdev));
 		dev_name(vpbe_dev->pdev));
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
 		 dev_name(vpbe_dev->pdev));
 		 dev_name(vpbe_dev->pdev));
-	strlcpy(cap->card, vpbe_dev->cfg->module_name, sizeof(cap->card));
+	strscpy(cap->card, vpbe_dev->cfg->module_name, sizeof(cap->card));
 
 
 	return 0;
 	return 0;
 }
 }

+ 3 - 3
drivers/media/platform/davinci/vpfe_capture.c

@@ -889,9 +889,9 @@ static int vpfe_querycap(struct file *file, void  *priv,
 
 
 	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
 	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
 	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
-	strlcpy(cap->driver, CAPTURE_DRV_NAME, sizeof(cap->driver));
-	strlcpy(cap->bus_info, "VPFE", sizeof(cap->bus_info));
-	strlcpy(cap->card, vpfe_dev->cfg->card_name, sizeof(cap->card));
+	strscpy(cap->driver, CAPTURE_DRV_NAME, sizeof(cap->driver));
+	strscpy(cap->bus_info, "VPFE", sizeof(cap->bus_info));
+	strscpy(cap->card, vpfe_dev->cfg->card_name, sizeof(cap->card));
 	return 0;
 	return 0;
 }
 }
 
 

+ 3 - 3
drivers/media/platform/davinci/vpif_capture.c

@@ -1094,10 +1094,10 @@ static int vpif_querycap(struct file *file, void  *priv,
 
 
 	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
 	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
 	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
-	strlcpy(cap->driver, VPIF_DRIVER_NAME, sizeof(cap->driver));
+	strscpy(cap->driver, VPIF_DRIVER_NAME, sizeof(cap->driver));
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
 		 dev_name(vpif_dev));
 		 dev_name(vpif_dev));
-	strlcpy(cap->card, config->card_name, sizeof(cap->card));
+	strscpy(cap->card, config->card_name, sizeof(cap->card));
 
 
 	return 0;
 	return 0;
 }
 }
@@ -1463,7 +1463,7 @@ static int vpif_probe_complete(void)
 
 
 		/* Initialize the video_device structure */
 		/* Initialize the video_device structure */
 		vdev = &ch->video_dev;
 		vdev = &ch->video_dev;
-		strlcpy(vdev->name, VPIF_DRIVER_NAME, sizeof(vdev->name));
+		strscpy(vdev->name, VPIF_DRIVER_NAME, sizeof(vdev->name));
 		vdev->release = video_device_release_empty;
 		vdev->release = video_device_release_empty;
 		vdev->fops = &vpif_fops;
 		vdev->fops = &vpif_fops;
 		vdev->ioctl_ops = &vpif_ioctl_ops;
 		vdev->ioctl_ops = &vpif_ioctl_ops;

+ 3 - 3
drivers/media/platform/davinci/vpif_display.c

@@ -586,10 +586,10 @@ static int vpif_querycap(struct file *file, void  *priv,
 
 
 	cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
 	cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
 	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
-	strlcpy(cap->driver, VPIF_DRIVER_NAME, sizeof(cap->driver));
+	strscpy(cap->driver, VPIF_DRIVER_NAME, sizeof(cap->driver));
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
 		 dev_name(vpif_dev));
 		 dev_name(vpif_dev));
-	strlcpy(cap->card, config->card_name, sizeof(cap->card));
+	strscpy(cap->card, config->card_name, sizeof(cap->card));
 
 
 	return 0;
 	return 0;
 }
 }
@@ -1209,7 +1209,7 @@ static int vpif_probe_complete(void)
 
 
 		/* Initialize the video_device structure */
 		/* Initialize the video_device structure */
 		vdev = &ch->video_dev;
 		vdev = &ch->video_dev;
-		strlcpy(vdev->name, VPIF_DRIVER_NAME, sizeof(vdev->name));
+		strscpy(vdev->name, VPIF_DRIVER_NAME, sizeof(vdev->name));
 		vdev->release = video_device_release_empty;
 		vdev->release = video_device_release_empty;
 		vdev->fops = &vpif_fops;
 		vdev->fops = &vpif_fops;
 		vdev->ioctl_ops = &vpif_ioctl_ops;
 		vdev->ioctl_ops = &vpif_ioctl_ops;

+ 1 - 1
drivers/media/platform/exynos-gsc/gsc-core.c

@@ -339,7 +339,7 @@ int gsc_enum_fmt_mplane(struct v4l2_fmtdesc *f)
 	if (!fmt)
 	if (!fmt)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, fmt->name, sizeof(f->description));
+	strscpy(f->description, fmt->name, sizeof(f->description));
 	f->pixelformat = fmt->pixelformat;
 	f->pixelformat = fmt->pixelformat;
 
 
 	return 0;
 	return 0;

+ 2 - 2
drivers/media/platform/exynos-gsc/gsc-m2m.c

@@ -294,8 +294,8 @@ static int gsc_m2m_querycap(struct file *file, void *fh,
 	struct gsc_ctx *ctx = fh_to_ctx(fh);
 	struct gsc_ctx *ctx = fh_to_ctx(fh);
 	struct gsc_dev *gsc = ctx->gsc_dev;
 	struct gsc_dev *gsc = ctx->gsc_dev;
 
 
-	strlcpy(cap->driver, GSC_MODULE_NAME, sizeof(cap->driver));
-	strlcpy(cap->card, GSC_MODULE_NAME " gscaler", sizeof(cap->card));
+	strscpy(cap->driver, GSC_MODULE_NAME, sizeof(cap->driver));
+	strscpy(cap->card, GSC_MODULE_NAME " gscaler", sizeof(cap->card));
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
 		 dev_name(&gsc->pdev->dev));
 		 dev_name(&gsc->pdev->dev));
 	cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M_MPLANE;
 	cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M_MPLANE;

+ 2 - 2
drivers/media/platform/exynos4-is/common.c

@@ -40,8 +40,8 @@ EXPORT_SYMBOL(fimc_find_remote_sensor);
 void __fimc_vidioc_querycap(struct device *dev, struct v4l2_capability *cap,
 void __fimc_vidioc_querycap(struct device *dev, struct v4l2_capability *cap,
 						unsigned int caps)
 						unsigned int caps)
 {
 {
-	strlcpy(cap->driver, dev->driver->name, sizeof(cap->driver));
-	strlcpy(cap->card, dev->driver->name, sizeof(cap->card));
+	strscpy(cap->driver, dev->driver->name, sizeof(cap->driver));
+	strscpy(cap->card, dev->driver->name, sizeof(cap->card));
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 				"platform:%s", dev_name(dev));
 				"platform:%s", dev_name(dev));
 	cap->device_caps = caps;
 	cap->device_caps = caps;

+ 1 - 1
drivers/media/platform/exynos4-is/fimc-capture.c

@@ -1087,7 +1087,7 @@ static int fimc_cap_enum_input(struct file *file, void *priv,
 	fimc_md_graph_unlock(ve);
 	fimc_md_graph_unlock(ve);
 
 
 	if (sd)
 	if (sd)
-		strlcpy(i->name, sd->name, sizeof(i->name));
+		strscpy(i->name, sd->name, sizeof(i->name));
 
 
 	return 0;
 	return 0;
 }
 }

+ 1 - 1
drivers/media/platform/exynos4-is/fimc-is-i2c.c

@@ -57,7 +57,7 @@ static int fimc_is_i2c_probe(struct platform_device *pdev)
 	i2c_adap = &isp_i2c->adapter;
 	i2c_adap = &isp_i2c->adapter;
 	i2c_adap->dev.of_node = node;
 	i2c_adap->dev.of_node = node;
 	i2c_adap->dev.parent = &pdev->dev;
 	i2c_adap->dev.parent = &pdev->dev;
-	strlcpy(i2c_adap->name, "exynos4x12-isp-i2c", sizeof(i2c_adap->name));
+	strscpy(i2c_adap->name, "exynos4x12-isp-i2c", sizeof(i2c_adap->name));
 	i2c_adap->owner = THIS_MODULE;
 	i2c_adap->owner = THIS_MODULE;
 	i2c_adap->algo = &fimc_is_i2c_algorithm;
 	i2c_adap->algo = &fimc_is_i2c_algorithm;
 	i2c_adap->class = I2C_CLASS_SPD;
 	i2c_adap->class = I2C_CLASS_SPD;

+ 1 - 1
drivers/media/platform/exynos4-is/fimc-isp-video.c

@@ -365,7 +365,7 @@ static int isp_video_enum_fmt_mplane(struct file *file, void *priv,
 	if (WARN_ON(fmt == NULL))
 	if (WARN_ON(fmt == NULL))
 		return -EINVAL;
 		return -EINVAL;
 
 
-	strlcpy(f->description, fmt->name, sizeof(f->description));
+	strscpy(f->description, fmt->name, sizeof(f->description));
 	f->pixelformat = fmt->fourcc;
 	f->pixelformat = fmt->fourcc;
 
 
 	return 0;
 	return 0;

+ 3 - 3
drivers/media/platform/exynos4-is/fimc-lite.c

@@ -654,8 +654,8 @@ static int fimc_lite_querycap(struct file *file, void *priv,
 {
 {
 	struct fimc_lite *fimc = video_drvdata(file);
 	struct fimc_lite *fimc = video_drvdata(file);
 
 
-	strlcpy(cap->driver, FIMC_LITE_DRV_NAME, sizeof(cap->driver));
-	strlcpy(cap->card, FIMC_LITE_DRV_NAME, sizeof(cap->card));
+	strscpy(cap->driver, FIMC_LITE_DRV_NAME, sizeof(cap->driver));
+	strscpy(cap->card, FIMC_LITE_DRV_NAME, sizeof(cap->card));
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
 	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
 					dev_name(&fimc->pdev->dev));
 					dev_name(&fimc->pdev->dev));
 
 
@@ -673,7 +673,7 @@ static int fimc_lite_enum_fmt_mplane(struct file *file, void *priv,
 		return -EINVAL;
 		return -EINVAL;
 
 
 	fmt = &fimc_lite_formats[f->index];
 	fmt = &fimc_lite_formats[f->index];
-	strlcpy(f->description, fmt->name, sizeof(f->description));
+	strscpy(f->description, fmt->name, sizeof(f->description));
 	f->pixelformat = fmt->fourcc;
 	f->pixelformat = fmt->fourcc;
 
 
 	return 0;
 	return 0;

部分文件因文件數量過多而無法顯示