Skip to content

Commit

Permalink
Unregister the net device notifier before vhost exit
Browse files Browse the repository at this point in the history
Unregister the net device notifier before going ahead and freeing
the memory that the vhost driver keeps. If the notifier is not
unregistered first, it can potentially access freed memory that
vhost driver maintains.

Change-Id: I2a51af25f591f0646876cc6f289df0eb03fc3655
Closes-BUG: #1561589
  • Loading branch information
anandhk-juniper committed Mar 31, 2016
1 parent a4a9308 commit e3cb877
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
6 changes: 4 additions & 2 deletions linux/vhost_dev.c
Expand Up @@ -494,7 +494,7 @@ vhost_dellink(struct net_device *dev, struct list_head *head)

vp = netdev_priv(dev);
if (vp) {
if (vp->vp_db_index >= 0)
if (vhost_priv_db && vp->vp_db_index >= 0)
vhost_priv_db[vp->vp_db_index] = NULL;

vp->vp_db_index = -1;
Expand Down Expand Up @@ -566,8 +566,10 @@ void
vhost_exit(void)
{
vhost_netlink_exit();
if (vhost_priv_db)
if (vhost_priv_db) {
kfree(vhost_priv_db);
vhost_priv_db = NULL;
}

return;
}
Expand Down
2 changes: 1 addition & 1 deletion linux/vr_host_interface.c
Expand Up @@ -2339,8 +2339,8 @@ vr_host_vif_init(struct vrouter *router)
void
vr_host_interface_exit(void)
{
vhost_exit();
unregister_netdevice_notifier(&host_if_nb);
vhost_exit();
linux_pkt_dev_free();

#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39))
Expand Down

0 comments on commit e3cb877

Please sign in to comment.