summaryrefslogtreecommitdiff
path: root/drivers/media/rc/redrat3.c
diff options
context:
space:
mode:
authorSean Young <sean@mess.org>2013-07-31 02:00:00 +0400
committerMauro Carvalho Chehab <m.chehab@samsung.com>2013-08-22 18:45:32 +0400
commit38e35a85284b9cce271ff43a849d3676a46f8512 (patch)
tree6352a4acc116f9f01f2a30b03d8a5efbdc9676c6 /drivers/media/rc/redrat3.c
parenta354177f058541b7212230feb2c0da7c464e9b9d (diff)
downloadlinux-38e35a85284b9cce271ff43a849d3676a46f8512.tar.xz
[media] redrat3: ensure whole packet is read
The length in the header excludes the header itself, so we're getting spurious readings. Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/rc/redrat3.c')
-rw-r--r--drivers/media/rc/redrat3.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c
index 0042367b060c..ccd267f131fa 100644
--- a/drivers/media/rc/redrat3.c
+++ b/drivers/media/rc/redrat3.c
@@ -663,7 +663,8 @@ static int redrat3_get_ir_data(struct redrat3_dev *rr3, unsigned len)
goto out;
}
- if (rr3->bytes_read < be16_to_cpu(rr3->irdata.header.length))
+ if (rr3->bytes_read < be16_to_cpu(rr3->irdata.header.length) +
+ sizeof(struct redrat3_header))
/* we're still accumulating data */
return 0;