msm: ipa: fix security issues in ipa wan driver
Fix the security issue in handling add mux channel event in ipa wan driver. Change-Id: Ic2ffeafddad4954ec3ecba0d675646d0790eede7 Signed-off-by: Skylar Chang <chiaweic@codeaurora.org> Acked-by: Shihuan Liu <shihuanl@qti.qualcomm.com>
This commit is contained in:
parent
8d01035ba4
commit
051c346ba0
|
@ -68,6 +68,7 @@ static void *subsys_notify_handle;
|
|||
|
||||
u32 apps_to_ipa_hdl, ipa_to_apps_hdl; /* get handler from ipa */
|
||||
static struct mutex ipa_to_apps_pipe_handle_guard;
|
||||
static struct mutex add_mux_channel_lock;
|
||||
static int wwan_add_ul_flt_rule_to_ipa(void);
|
||||
static int wwan_del_ul_flt_rule_to_ipa(void);
|
||||
static void ipa_wwan_msg_free_cb(void*, u32, u32);
|
||||
|
@ -1345,9 +1346,11 @@ static int ipa_wwan_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
|||
rmnet_mux_val.mux_id);
|
||||
return rc;
|
||||
}
|
||||
mutex_lock(&add_mux_channel_lock);
|
||||
if (rmnet_index >= MAX_NUM_OF_MUX_CHANNEL) {
|
||||
IPAWANERR("Exceed mux_channel limit(%d)\n",
|
||||
rmnet_index);
|
||||
mutex_unlock(&add_mux_channel_lock);
|
||||
return -EFAULT;
|
||||
}
|
||||
IPAWANDBG("ADD_MUX_CHANNEL(%d, name: %s)\n",
|
||||
|
@ -1375,6 +1378,7 @@ static int ipa_wwan_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
|||
IPAWANERR("device %s reg IPA failed\n",
|
||||
extend_ioctl_data.u.
|
||||
rmnet_mux_val.vchannel_name);
|
||||
mutex_unlock(&add_mux_channel_lock);
|
||||
return -ENODEV;
|
||||
}
|
||||
mux_channel[rmnet_index].mux_channel_set = true;
|
||||
|
@ -1387,6 +1391,7 @@ static int ipa_wwan_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
|||
mux_channel[rmnet_index].ul_flt_reg = false;
|
||||
}
|
||||
rmnet_index++;
|
||||
mutex_unlock(&add_mux_channel_lock);
|
||||
break;
|
||||
case RMNET_IOCTL_SET_EGRESS_DATA_FORMAT:
|
||||
IPAWANDBG("get RMNET_IOCTL_SET_EGRESS_DATA_FORMAT\n");
|
||||
|
@ -2710,6 +2715,7 @@ static int __init ipa_wwan_init(void)
|
|||
|
||||
mutex_init(&ipa_to_apps_pipe_handle_guard);
|
||||
ipa_to_apps_hdl = -1;
|
||||
mutex_init(&add_mux_channel_lock);
|
||||
|
||||
ipa_qmi_init();
|
||||
|
||||
|
@ -2720,19 +2726,21 @@ static int __init ipa_wwan_init(void)
|
|||
return platform_driver_register(&rmnet_ipa_driver);
|
||||
else
|
||||
return (int)PTR_ERR(subsys_notify_handle);
|
||||
}
|
||||
}
|
||||
|
||||
static void __exit ipa_wwan_cleanup(void)
|
||||
{
|
||||
int ret;
|
||||
ipa_qmi_cleanup();
|
||||
mutex_destroy(&ipa_to_apps_pipe_handle_guard);
|
||||
mutex_destroy(&add_mux_channel_lock);
|
||||
ret = subsys_notif_unregister_notifier(subsys_notify_handle,
|
||||
&ssr_notifier);
|
||||
if (ret)
|
||||
IPAWANERR(
|
||||
"Error subsys_notif_unregister_notifier system %s, ret=%d\n",
|
||||
SUBSYS_MODEM, ret);
|
||||
|
||||
platform_driver_unregister(&rmnet_ipa_driver);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue