msm: adsprpc: Fix compat ioctl invoke failure
Passing garbage address to get_user resulting badparam error for 32 bit application use cases. Resolve address inv32 struct pointer to fix. Change-Id: I7b435a1071da84fac6ab91d628066efc68e22a96 Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
This commit is contained in:
parent
7d6b043520
commit
2930998fdf
@ -156,7 +156,7 @@ struct compat_fastrpc_ioctl_dsp_capabilities {
|
||||
static int compat_get_fastrpc_ioctl_invoke(
|
||||
struct compat_fastrpc_ioctl_invoke_crc __user *inv32,
|
||||
struct fastrpc_ioctl_invoke_crc __user **inva,
|
||||
unsigned int cmd, unsigned int sc)
|
||||
unsigned int cmd, compat_uint_t sc)
|
||||
{
|
||||
compat_uint_t u;
|
||||
compat_size_t s;
|
||||
@ -520,14 +520,14 @@ long compat_fastrpc_device_ioctl(struct file *filp, unsigned int cmd,
|
||||
case COMPAT_FASTRPC_IOCTL_INVOKE_ATTRS:
|
||||
case COMPAT_FASTRPC_IOCTL_INVOKE_CRC:
|
||||
{
|
||||
struct compat_fastrpc_ioctl_invoke_crc __user *inv32;
|
||||
struct fastrpc_ioctl_invoke_crc __user *inv;
|
||||
struct compat_fastrpc_ioctl_invoke_crc __user *inv32 = NULL;
|
||||
struct fastrpc_ioctl_invoke_crc __user *inv = NULL;
|
||||
|
||||
inv32 = compat_ptr(arg);
|
||||
err = get_user(sc, &inv32->inv.sc);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
inv32 = compat_ptr(arg);
|
||||
VERIFY(err, 0 == compat_get_fastrpc_ioctl_invoke(inv32,
|
||||
&inv, cmd, sc));
|
||||
if (err)
|
||||
|
Loading…
Reference in New Issue
Block a user