diff --git a/[refs] b/[refs] index d87f991740f6..b5868c59d22c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3e58ac14ad2c443d86c5bed0137a010fe4d16fe2 +refs/heads/master: bf5bbed15c41228ea1abbb8d3931050922bfc37f diff --git a/trunk/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c b/trunk/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c index 5b682cc4c814..e40718552850 100644 --- a/trunk/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c +++ b/trunk/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c @@ -561,6 +561,13 @@ static void ttusb_process_muxpack(struct ttusb *ttusb, const u8 * muxpack, { u16 csum = 0, cc; int i; + + if (len < 4 || len & 0x1) { + pr_warn("%s: muxpack has invalid len %d\n", __func__, len); + numinvalid++; + return; + } + for (i = 0; i < len; i += 2) csum ^= le16_to_cpup((__le16 *) (muxpack + i)); if (csum) {