In the Linux kernel, the following vulnerability has been resolved: net: ethernet: fix potential use-after-free in ecbhfremove static void ecbhfremove(struct pcidev *dev) { ... struct ecbhfpriv *priv = netdevpriv(netdev); unregisternetdev(netdev); freenetdev(netdev); pciiounmap(dev, priv->dmaio); pciiounmap(dev, priv->io); ... } priv is netdev private data, but it is used after freenetdev(). It can cause use-after-free when accessing priv pointer. So, fix it by moving freenetdev() after pci_iounmap() calls.