• Herbert Xu's avatar
    [IPSEC]: Fix tunnel error handling in ipcomp6 · 6abaaaae
    Herbert Xu authored
    The error handling in ipcomp6_tunnel_create is broken in two ways:
    
    1) If we fail to allocate an SPI (this should never happen in practice
    since there are plenty of 32-bit SPI values for us to use), we will
    still go ahead and create the SA.
    
    2) When xfrm_init_state fails, we first of all may trigger the BUG_TRAP
    in __xfrm_state_destroy because we didn't set the state to DEAD.  More
    importantly we end up returning the freed state as if we succeeded!
    
    This patch fixes them both.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6abaaaae
ipcomp6.c 11.3 KB