• Herbert Xu's avatar
    [XFRM] user: Move attribute copying code into copy_to_user_state_extra · 68325d3b
    Herbert Xu authored
    Here's a good example of code duplication leading to code rot.  The
    notification patch did its own netlink message creation for xfrm states.
    It duplicated code that was already in dump_one_state.  Guess what, the
    next time (and the time after) when someone updated dump_one_state the
    notification path got zilch.
    
    This patch moves that code from dump_one_state to copy_to_user_state_extra
    and uses it in xfrm_notify_sa too.  Unfortunately whoever updates this
    still needs to update xfrm_sa_len since the notification path wants to
    know the exact size for allocation.
    
    At least I've added a comment saying so and if someone still forgest, we'll
    have a WARN_ON telling us so.
    
    I also changed the security size calculation to use xfrm_user_sec_ctx since
    that's what we actually put into the skb.  However it makes no practical
    difference since it has the same size as xfrm_sec_ctx.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    68325d3b
xfrm_user.c 55 KB