Re: [PATCH net] ipv6: Fix may be used uninitialized warning in rt6_check
flat view
From: Stefano Brivio <hidden>
Date: 2017-08-25 09:02:13
On Fri, 25 Aug 2017 09:52:17 +0200 Steffen Klassert [off-list ref] wrote:
On Fri, Aug 25, 2017 at 09:05:42AM +0200, Steffen Klassert wrote:quoted
rt_cookie might be used uninitialized, fix this by initializing it. Fixes: c5cff8561d2d ("ipv6: add rcu grace period before freeing fib6_node") Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> --- net/ipv6/route.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/net/ipv6/route.c b/net/ipv6/route.c index a9d3564..48c8c92 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c@@ -1289,7 +1289,7 @@ static void rt6_dst_from_metrics_check(struct rt6_info *rt) static struct dst_entry *rt6_check(struct rt6_info *rt, u32 cookie) { - u32 rt_cookie; + u32 rt_cookie = 0; if (!rt6_get_cookie_safe(rt, &rt_cookie) || rt_cookie != cookie) return NULL;The compiler warning seems to be a false positive, as rt_cookie != cookie is only checked if rt6_get_cookie_safe returns true in which case rt_cookie is initialized. Please disregard this patch.
...or not? I was thinking of sending a similar patch with uninitialized_var(rt_cookie), but it seems we have similar cases where we just initialize to zero instead. I wonder which approach is considered the most acceptable nowadays. I would be in favour of uninitialized_var() as it doesn't change the binary output, but https://lwn.net/Articles/529954/ also contains some valid criticism. Ideas?