Google
  Web www.spinics.net

[PATCH] DVB: Fix I2C adapters name size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Some DVB drivers are incorrectly assuming that the size of
i2c_adapter.name is I2C_NAME_SIZE. Here's a fix.

Also change strncpy to strlcpy, as the former is error-prone
(and was indeed incorrectly used.)

Signed-off-by: Jean Delvare <khali@xxxxxxxxxxxx>
Cc: Uwe Bugla <uwe.bugla@xxxxxx>
Cc: v4l-dvb-maintainer@xxxxxxxxxxx
---
 drivers/media/dvb/b2c2/flexcop-i2c.c  |   12 ++++++------
 drivers/media/dvb/frontends/cx24123.c |    4 ++--
 drivers/media/dvb/frontends/s5h1420.c |    3 ++-
 3 files changed, 10 insertions(+), 9 deletions(-)

--- linux-2.6.27-rc4.orig/drivers/media/dvb/b2c2/flexcop-i2c.c	2008-07-14 11:15:01.000000000 +0200
+++ linux-2.6.27-rc4/drivers/media/dvb/b2c2/flexcop-i2c.c	2008-08-21 12:16:58.000000000 +0200
@@ -221,12 +221,12 @@ int flexcop_i2c_init(struct flexcop_devi
 	fc->fc_i2c_adap[1].port = FC_I2C_PORT_EEPROM;
 	fc->fc_i2c_adap[2].port = FC_I2C_PORT_TUNER;
 
-	strncpy(fc->fc_i2c_adap[0].i2c_adap.name,
-		"B2C2 FlexCop I2C to demod", I2C_NAME_SIZE);
-	strncpy(fc->fc_i2c_adap[1].i2c_adap.name,
-		"B2C2 FlexCop I2C to eeprom", I2C_NAME_SIZE);
-	strncpy(fc->fc_i2c_adap[2].i2c_adap.name,
-		"B2C2 FlexCop I2C to tuner", I2C_NAME_SIZE);
+	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));
 
 	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]);
--- linux-2.6.27-rc4.orig/drivers/media/dvb/frontends/cx24123.c	2008-07-14 11:15:01.000000000 +0200
+++ linux-2.6.27-rc4/drivers/media/dvb/frontends/cx24123.c	2008-08-21 12:16:01.000000000 +0200
@@ -1072,8 +1072,8 @@ struct dvb_frontend* cx24123_attach(cons
     if (config->dont_use_pll)
 	cx24123_repeater_mode(state, 1, 0);
 
-	strncpy(state->tuner_i2c_adapter.name,
-		"CX24123 tuner I2C bus", I2C_NAME_SIZE);
+	strlcpy(state->tuner_i2c_adapter.name, "CX24123 tuner I2C bus",
+		sizeof(state->tuner_i2c_adapter.name));
 	state->tuner_i2c_adapter.class     = I2C_CLASS_TV_DIGITAL,
 	state->tuner_i2c_adapter.algo      = &cx24123_tuner_i2c_algo;
 	state->tuner_i2c_adapter.algo_data = NULL;
--- linux-2.6.27-rc4.orig/drivers/media/dvb/frontends/s5h1420.c	2008-07-14 11:15:01.000000000 +0200
+++ linux-2.6.27-rc4/drivers/media/dvb/frontends/s5h1420.c	2008-08-21 12:15:30.000000000 +0200
@@ -915,7 +915,8 @@ struct dvb_frontend *s5h1420_attach(cons
 	state->frontend.demodulator_priv = state;
 
 	/* create tuner i2c adapter */
-	strncpy(state->tuner_i2c_adapter.name, "S5H1420-PN1010 tuner I2C bus", I2C_NAME_SIZE);
+	strlcpy(state->tuner_i2c_adapter.name, "S5H1420-PN1010 tuner I2C bus",
+		sizeof(state->tuner_i2c_adapter.name));
 	state->tuner_i2c_adapter.class     = I2C_CLASS_TV_DIGITAL,
 	state->tuner_i2c_adapter.algo      = &s5h1420_tuner_i2c_algo;
 	state->tuner_i2c_adapter.algo_data = NULL;


-- 
Jean Delvare

_______________________________________________
v4l-dvb-maintainer mailing list
v4l-dvb-maintainer@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/v4l-dvb-maintainer

[Linux Media]     [Older V4L]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [SSH]     [Linux USB]

-->
Add to Google Powered by Linux

Google PageRank Checking tool