• Jeremy Sowden's avatar
    lapb: fixed leak of control-blocks. · f0662be0
    Jeremy Sowden authored
    [ Upstream commit 6be8e297f9bcea666ea85ac7a6cd9d52d6deaf92 ]
    lapb_register calls lapb_create_cb, which initializes the control-
    block's ref-count to one, and __lapb_insert_cb, which increments it when
    adding the new block to the list of blocks.
    lapb_unregister calls __lapb_remove_cb, which decrements the ref-count
    when removing control-block from the list of blocks, and calls lapb_put
    itself to decrement the ref-count before returning.
    However, lapb_unregister also calls __lapb_devtostruct to look up the
    right control-block for the given net_device, and __lapb_devtostruct
    also bumps the ref-count, which means that when lapb_unregister returns
    the ref-count is still 1 and the control-block is leaked.
    Call lapb_put after __lapb_devtostruct to fix leak.
    Reported-by: syzbot+afb980676c836b4a0afa@syzkaller.appspotmail.com
    Signed-off-by: 's avatarJeremy Sowden <jeremy@azazel.net>
    Signed-off-by: 's avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Last commit
Last update
Kconfig Loading commit data...
Makefile Loading commit data...
lapb_iface.c Loading commit data...
lapb_in.c Loading commit data...
lapb_out.c Loading commit data...
lapb_subr.c Loading commit data...
lapb_timer.c Loading commit data...