[PATCH] ipv4: fix ip header ident selection in __ip_make_skb()

Subsystems: networking [general], networking [ipv4/ipv6], the rest

STALE5108d

2 messages, 2 authors, 2012-08-21 · open the first message on its own page

[PATCH] ipv4: fix ip header ident selection in __ip_make_skb()

From: Eric Dumazet <hidden>
Date: 2012-08-20 17:26:51

From: Eric Dumazet <edumazet@google.com>

Christian Casteyde reported a kmemcheck 32-bit read from uninitialized
memory in __ip_select_ident().

It turns out that __ip_make_skb() called ip_select_ident() before
properly initializing iph->daddr.

This is a bug uncovered by commit 1d861aa4b3fb (inet: Minimize use of
cached route inetpeer.)

Addresses https://bugzilla.kernel.org/show_bug.cgi?id=46131

Reported-by: Christian Casteyde <redacted>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Stephen Hemminger <redacted>
---
 net/ipv4/ip_output.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 147ccc3..c196d74 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1338,10 +1338,10 @@ struct sk_buff *__ip_make_skb(struct sock *sk,
 	iph->ihl = 5;
 	iph->tos = inet->tos;
 	iph->frag_off = df;
-	ip_select_ident(iph, &rt->dst, sk);
 	iph->ttl = ttl;
 	iph->protocol = sk->sk_protocol;
 	ip_copy_addrs(iph, fl4);
+	ip_select_ident(iph, &rt->dst, sk);
 
 	if (opt) {
 		iph->ihl += opt->optlen>>2;

Re: [PATCH] ipv4: fix ip header ident selection in __ip_make_skb()

From: David Miller <davem@davemloft.net>
Date: 2012-08-21 21:51:28

From: Eric Dumazet <redacted>
Date: Mon, 20 Aug 2012 19:26:45 +0200
From: Eric Dumazet <edumazet@google.com>

Christian Casteyde reported a kmemcheck 32-bit read from uninitialized
memory in __ip_select_ident().

It turns out that __ip_make_skb() called ip_select_ident() before
properly initializing iph->daddr.

This is a bug uncovered by commit 1d861aa4b3fb (inet: Minimize use of
cached route inetpeer.)

Addresses https://bugzilla.kernel.org/show_bug.cgi?id=46131

Reported-by: Christian Casteyde <redacted>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Stephen Hemminger <redacted>
Applied, thanks Eric.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help