Re: [PATCH] [XFRM]: Don't dereference error pointer dst1
From: Eric Dumazet <hidden>
Date: 2010-09-29 20:45:22
Also in:
lkml
From: Eric Dumazet <hidden>
Date: 2010-09-29 20:45:22
Also in:
lkml
Le jeudi 30 septembre 2010 à 00:37 +0200, Roel Kluin a écrit :
Don't dereference dst1 when it's an error pointer. Signed-off-by: Roel Kluin <redacted> --- net/xfrm/xfrm_policy.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) I just noticed this by code analysis. It wasn't tested in any way.diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index cbab6e1..b186c3d 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c@@ -1414,13 +1414,14 @@ static struct dst_entry *xfrm_bundle_create(struct xfrm_policy *policy, for (; i < nx; i++) { struct xfrm_dst *xdst = xfrm_alloc_dst(net, family); - struct dst_entry *dst1 = &xdst->u.dst; + struct dst_entry *dst1; err = PTR_ERR(xdst); if (IS_ERR(xdst)) { dst_release(dst); goto put_states; } + dst1 = &xdst->u.dst; if (!dst_prev) dst0 = dst1;
This is not a dereference, but a cast from "struct xfrm_dst *" to "struct dst_entry *"