• H
    ipsec: Fix xfrm_state_walk race · 5c182458
    Herbert Xu 提交于
    As discovered by Timo Teräs, the currently xfrm_state_walk scheme
    is racy because if a second dump finishes before the first, we
    may free xfrm states that the first dump would walk over later.
    
    This patch fixes this by storing the dumps in a list in order
    to calculate the correct completion counter which cures this
    problem.
    
    I've expanded netlink_cb in order to accomodate the extra state
    related to this.  It shouldn't be a big deal since netlink_cb
    is kmalloced for each dump and we're just increasing it by 4 or
    8 bytes.
    Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    5c182458
xfrm_state.c 53.3 KB