Просмотр исходного кода

xfrm: fix gro_cells leak when remove virtual xfrm interfaces

The device gro_cells has been initialized, it should be freed,
otherwise it will be leaked

Fixes: f203b76d78092faf2 ("xfrm: Add virtual xfrm interfaces")
Signed-off-by: Zhang Yu <zhangyu31@baidu.com>
Signed-off-by: Li RongQing <lirongqing@baidu.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Li RongQing 6 лет назад
Родитель
Сommit
4da402597c
1 измененных файлов с 3 добавлено и 0 удалено
  1. 3 0
      net/xfrm/xfrm_interface.c

+ 3 - 0
net/xfrm/xfrm_interface.c

@@ -116,6 +116,9 @@ static void xfrmi_unlink(struct xfrmi_net *xfrmn, struct xfrm_if *xi)
 
 static void xfrmi_dev_free(struct net_device *dev)
 {
+	struct xfrm_if *xi = netdev_priv(dev);
+
+	gro_cells_destroy(&xi->gro_cells);
 	free_percpu(dev->tstats);
 }