[lkml]   [2010]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH] xfrm: check bundle policy existance before dereferencing it
    Fix the bundle validation code to not assume having a valid policy.
    When we have multiple transformations for a xfrm policy, the bundle
    instance will be a chain of bundles with only the first one having
    the policy reference. When policy_genid is bumped it will expire the
    first bundle in the chain which is equivalent of expiring the whole

    Reported-bisected-and-tested-by: Justin P. Mattock <>
    Signed-off-by: Timo Teräs <>
    net/xfrm/xfrm_policy.c | 3 ++-
    1 files changed, 2 insertions(+), 1 deletions(-)

    diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
    index 4bf27d9..af1c173 100644
    --- a/net/xfrm/xfrm_policy.c
    +++ b/net/xfrm/xfrm_policy.c
    @@ -2300,7 +2300,8 @@ int xfrm_bundle_ok(struct xfrm_policy *pol, struct xfrm_dst *first,
    return 0;
    if (xdst->xfrm_genid != dst->xfrm->genid)
    return 0;
    - if (xdst->policy_genid != atomic_read(&xdst->pols[0]->genid))
    + if (xdst->num_pols > 0 &&
    + xdst->policy_genid != atomic_read(&xdst->pols[0]->genid))
    return 0;

    if (strict && fl &&
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2010-06-24 07:49    [W:0.022 / U:17.280 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site