Skip to content

Commit a908eb9

Browse files
gennar1Mauro Carvalho Chehab
authored andcommitted
[media] rtl28xxu: fix buffer overflow when probing Rafael Micro r820t tuner
As suggested by Antti, this patch replaces: https://patchwork.kernel.org/patch/2649861/ The buffer overflow is fixed by reading only the r820t ID register. Signed-off-by: Gianluca Gennari <[email protected]> Acked-by: Antti Palosaari <[email protected]> Reviewed-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
1 parent af44ad5 commit a908eb9

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/media/usb/dvb-usb-v2/rtl28xxu.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ static int rtl2832u_read_config(struct dvb_usb_device *d)
376376
struct rtl28xxu_req req_mxl5007t = {0xd9c0, CMD_I2C_RD, 1, buf};
377377
struct rtl28xxu_req req_e4000 = {0x02c8, CMD_I2C_RD, 1, buf};
378378
struct rtl28xxu_req req_tda18272 = {0x00c0, CMD_I2C_RD, 2, buf};
379-
struct rtl28xxu_req req_r820t = {0x0034, CMD_I2C_RD, 5, buf};
379+
struct rtl28xxu_req req_r820t = {0x0034, CMD_I2C_RD, 1, buf};
380380

381381
dev_dbg(&d->udev->dev, "%s:\n", __func__);
382382

@@ -481,9 +481,9 @@ static int rtl2832u_read_config(struct dvb_usb_device *d)
481481
goto found;
482482
}
483483

484-
/* check R820T by reading tuner stats at I2C addr 0x1a */
484+
/* check R820T ID register; reg=00 val=69 */
485485
ret = rtl28xxu_ctrl_msg(d, &req_r820t);
486-
if (ret == 0) {
486+
if (ret == 0 && buf[0] == 0x69) {
487487
priv->tuner = TUNER_RTL2832_R820T;
488488
priv->tuner_name = "R820T";
489489
goto found;

0 commit comments

Comments
 (0)