lkml.org 
[lkml]   [2010]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] xfrm: check bundle policy existance before dereferencing it
    Date
    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
    chain.

    Reported-bisected-and-tested-by: Justin P. Mattock <justinmattock@gmail.com>
    Signed-off-by: Timo Teräs <timo.teras@iki.fi>
    ---
    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 &&
    --
    1.7.0.4
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

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