| From 25598e0c32cd7e9076b24e81c1f21b1d5d3ff7d0 Mon Sep 17 00:00:00 2001 |
| From: Dan Carpenter <error27@gmail.com> |
| Date: Fri, 7 Jan 2011 16:41:54 -0300 |
| Subject: [PATCH] av7110: check for negative array offset |
| |
| commit cb26a24ee9706473f31d34cc259f4dcf45cd0644 upstream |
| |
| info->num comes from the user. It's type int. If the user passes |
| in a negative value that would cause memory corruption. |
| |
| Signed-off-by: Dan Carpenter <error27@gmail.com> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/media/dvb/ttpci/av7110_ca.c b/drivers/media/dvb/ttpci/av7110_ca.c |
| index ac7779c..d884aac 100644 |
| --- a/drivers/media/dvb/ttpci/av7110_ca.c |
| +++ b/drivers/media/dvb/ttpci/av7110_ca.c |
| @@ -278,7 +278,7 @@ static int dvb_ca_ioctl(struct inode *inode, struct file *file, |
| { |
| ca_slot_info_t *info=(ca_slot_info_t *)parg; |
| |
| - if (info->num > 1) |
| + if (info->num < 0 || info->num > 1) |
| return -EINVAL; |
| av7110->ci_slot[info->num].num = info->num; |
| av7110->ci_slot[info->num].type = FW_CI_LL_SUPPORT(av7110->arm_app) ? |
| -- |
| 1.7.4.4 |
| |