macsec: use after free when deleting the underlying device
authorSabrina Dubroca <sd@queasysnail.net>
Thu, 11 Aug 2016 13:24:27 +0000 (15:24 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Aug 2016 16:58:57 +0000 (09:58 -0700)
commitbbe11fab0b6c1d113776b2898e085bf4d1fdc607
tree6cfcbd774a34d469cbe811424095f3c0807db577
parent104a493390940e85fb7c840a9fd5214aba5cb3bd
macsec: use after free when deleting the underlying device

macsec_notify() loops over the list of macsec devices configured on the
underlying device when this device is being removed.  This list is part
of the rx_handler data.

However, macsec_dellink unregisters the rx_handler and frees the
rx_handler data when the last macsec device is removed from the
underlying device.

Add macsec_common_dellink() to delete macsec devices without
unregistering the rx_handler and freeing the associated data.

Fixes: 960d5848dbf1 ("macsec: fix memory leaks around rx_handler (un)registration")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/macsec.c