[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1297406495.18018.76.camel@vega>
Date: Fri, 11 Feb 2011 15:41:35 +0900
From: Hiroaki SHIMODA <shimoda.hiroaki@...il.com>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org, timo.teras@....fi,
herbert@...dor.apana.org.au
Subject: [PATCH net-2.6] xfrm: avoid possible oopse in xfrm_alloc_dst
Commit 80c802f3073e84 (xfrm: cache bundles instead of policies for
outgoing flows) introduced possible oopse when dst_alloc returns NULL.
Signed-off-by: Hiroaki SHIMODA <shimoda.hiroaki@...il.com>
---
net/xfrm/xfrm_policy.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 8b3ef40..6459588 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1340,10 +1340,13 @@ static inline struct xfrm_dst *xfrm_alloc_dst(struct net *net, int family)
default:
BUG();
}
- xdst = dst_alloc(dst_ops) ?: ERR_PTR(-ENOBUFS);
+ xdst = dst_alloc(dst_ops);
xfrm_policy_put_afinfo(afinfo);
- xdst->flo.ops = &xfrm_bundle_fc_ops;
+ if (likely(xdst))
+ xdst->flo.ops = &xfrm_bundle_fc_ops;
+ else
+ xdst = ERR_PTR(-ENOBUFS);
return xdst;
}
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists