diff options
author | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2014-09-24 09:15:22 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2014-09-26 05:47:52 -0400 |
commit | 71d1b2bec07c8aec4252111a84699273f50fdc52 (patch) | |
tree | ee4e79cfc1c7cfd63e29b2153852d999d1d3f8c6 | |
parent | 289297b9a33d4de9644c422c0cf6349387af8ad3 (diff) |
[media] dvb_frontend: Fix __user namespace
As reported by smatch:
drivers/media/dvb-core/dvb_frontend.c:1960:45: warning: incorrect type in argument 2 (different address spaces)
drivers/media/dvb-core/dvb_frontend.c:1960:45: expected void const [noderef] <asn:1>*from
drivers/media/dvb-core/dvb_frontend.c:1960:45: got struct dtv_property *[noderef] <asn:1>props
drivers/media/dvb-core/dvb_frontend.c:1992:45: warning: incorrect type in argument 2 (different address spaces)
drivers/media/dvb-core/dvb_frontend.c:1992:45: expected void const [noderef] <asn:1>*from
drivers/media/dvb-core/dvb_frontend.c:1992:45: got struct dtv_property *[noderef] <asn:1>props
drivers/media/dvb-core/dvb_frontend.c:2014:38: warning: incorrect type in argument 1 (different address spaces)
drivers/media/dvb-core/dvb_frontend.c:2014:38: expected void [noderef] <asn:1>*to
drivers/media/dvb-core/dvb_frontend.c:2014:38: got struct dtv_property *[noderef] <asn:1>props
drivers/media/dvb-core/dvb_frontend.c:1946:17: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1947:17: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1951:22: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1951:42: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1954:31: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1960:41: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1960:54: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1965:33: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1978:17: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1979:17: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1983:22: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1983:42: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1986:31: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1992:41: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:1992:54: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:2007:33: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:2014:34: warning: dereference of noderef expression
drivers/media/dvb-core/dvb_frontend.c:2014:52: warning: dereference of noderef expression
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r-- | drivers/media/dvb-core/dvb_frontend.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c index c862ad732d9e..b8579ee68bd6 100644 --- a/drivers/media/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb-core/dvb_frontend.c | |||
@@ -1934,15 +1934,13 @@ static int dvb_frontend_ioctl_properties(struct file *file, | |||
1934 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | 1934 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; |
1935 | int err = 0; | 1935 | int err = 0; |
1936 | 1936 | ||
1937 | struct dtv_properties *tvps = NULL; | 1937 | struct dtv_properties *tvps = parg; |
1938 | struct dtv_property *tvp = NULL; | 1938 | struct dtv_property *tvp = NULL; |
1939 | int i; | 1939 | int i; |
1940 | 1940 | ||
1941 | dev_dbg(fe->dvb->device, "%s:\n", __func__); | 1941 | dev_dbg(fe->dvb->device, "%s:\n", __func__); |
1942 | 1942 | ||
1943 | if(cmd == FE_SET_PROPERTY) { | 1943 | if (cmd == FE_SET_PROPERTY) { |
1944 | tvps = (struct dtv_properties __user *)parg; | ||
1945 | |||
1946 | dev_dbg(fe->dvb->device, "%s: properties.num = %d\n", __func__, tvps->num); | 1944 | dev_dbg(fe->dvb->device, "%s: properties.num = %d\n", __func__, tvps->num); |
1947 | dev_dbg(fe->dvb->device, "%s: properties.props = %p\n", __func__, tvps->props); | 1945 | dev_dbg(fe->dvb->device, "%s: properties.props = %p\n", __func__, tvps->props); |
1948 | 1946 | ||
@@ -1957,7 +1955,8 @@ static int dvb_frontend_ioctl_properties(struct file *file, | |||
1957 | goto out; | 1955 | goto out; |
1958 | } | 1956 | } |
1959 | 1957 | ||
1960 | if (copy_from_user(tvp, tvps->props, tvps->num * sizeof(struct dtv_property))) { | 1958 | if (copy_from_user(tvp, (void __user *)tvps->props, |
1959 | tvps->num * sizeof(struct dtv_property))) { | ||
1961 | err = -EFAULT; | 1960 | err = -EFAULT; |
1962 | goto out; | 1961 | goto out; |
1963 | } | 1962 | } |
@@ -1972,10 +1971,7 @@ static int dvb_frontend_ioctl_properties(struct file *file, | |||
1972 | if (c->state == DTV_TUNE) | 1971 | if (c->state == DTV_TUNE) |
1973 | dev_dbg(fe->dvb->device, "%s: Property cache is full, tuning\n", __func__); | 1972 | dev_dbg(fe->dvb->device, "%s: Property cache is full, tuning\n", __func__); |
1974 | 1973 | ||
1975 | } else | 1974 | } else if (cmd == FE_GET_PROPERTY) { |
1976 | if(cmd == FE_GET_PROPERTY) { | ||
1977 | tvps = (struct dtv_properties __user *)parg; | ||
1978 | |||
1979 | dev_dbg(fe->dvb->device, "%s: properties.num = %d\n", __func__, tvps->num); | 1975 | dev_dbg(fe->dvb->device, "%s: properties.num = %d\n", __func__, tvps->num); |
1980 | dev_dbg(fe->dvb->device, "%s: properties.props = %p\n", __func__, tvps->props); | 1976 | dev_dbg(fe->dvb->device, "%s: properties.props = %p\n", __func__, tvps->props); |
1981 | 1977 | ||
@@ -1990,7 +1986,8 @@ static int dvb_frontend_ioctl_properties(struct file *file, | |||
1990 | goto out; | 1986 | goto out; |
1991 | } | 1987 | } |
1992 | 1988 | ||
1993 | if (copy_from_user(tvp, tvps->props, tvps->num * sizeof(struct dtv_property))) { | 1989 | if (copy_from_user(tvp, (void __user *)tvps->props, |
1990 | tvps->num * sizeof(struct dtv_property))) { | ||
1994 | err = -EFAULT; | 1991 | err = -EFAULT; |
1995 | goto out; | 1992 | goto out; |
1996 | } | 1993 | } |
@@ -2012,7 +2009,8 @@ static int dvb_frontend_ioctl_properties(struct file *file, | |||
2012 | (tvp + i)->result = err; | 2009 | (tvp + i)->result = err; |
2013 | } | 2010 | } |
2014 | 2011 | ||
2015 | if (copy_to_user(tvps->props, tvp, tvps->num * sizeof(struct dtv_property))) { | 2012 | if (copy_to_user((void __user *)tvps->props, tvp, |
2013 | tvps->num * sizeof(struct dtv_property))) { | ||
2016 | err = -EFAULT; | 2014 | err = -EFAULT; |
2017 | goto out; | 2015 | goto out; |
2018 | } | 2016 | } |