All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect()
@ 2015-06-25 13:10 Geert Uytterhoeven
  2015-06-25 13:33   ` David Miller
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2015-06-25 13:10 UTC (permalink / raw)
  To: David S. Miller, Tom Herbert, Jiri Pirko
  Cc: netdev, linux-kernel, Geert Uytterhoeven

net/core/flow_dissector.c: In function ‘__skb_flow_dissect’:
net/core/flow_dissector.c:132: warning: ‘ip_proto’ may be used uninitialized in this function

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
This may be a false positive, but the state machine in
__skb_flow_dissect() is a bit hard to follow.
As I believe it is controlled by a packet received from the network, the
only safe thing to do is to pre-initialize ip_proto.
---
 net/core/flow_dissector.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
index 476e5dda59e19822..2a834c6179b9973e 100644
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
@@ -129,7 +129,7 @@ bool __skb_flow_dissect(const struct sk_buff *skb,
 	struct flow_dissector_key_ports *key_ports;
 	struct flow_dissector_key_tags *key_tags;
 	struct flow_dissector_key_keyid *key_keyid;
-	u8 ip_proto;
+	u8 ip_proto = 0;
 
 	if (!data) {
 		data = skb->data;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect()
  2015-06-25 13:10 [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect() Geert Uytterhoeven
@ 2015-06-25 13:33   ` David Miller
  2015-06-25 16:07 ` Tom Herbert
  2015-06-28 23:54   ` David Miller
  2 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2015-06-25 13:33 UTC (permalink / raw)
  To: geert; +Cc: tom, jiri, netdev, linux-kernel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: Text/Plain; charset=iso-8859-7, Size: 858 bytes --]

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Thu, 25 Jun 2015 15:10:32 +0200

> net/core/flow_dissector.c: In function ¡__skb_flow_dissect¢:
> net/core/flow_dissector.c:132: warning: ¡ip_proto¢ may be used uninitialized in this function
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> This may be a false positive, but the state machine in
> __skb_flow_dissect() is a bit hard to follow.
> As I believe it is controlled by a packet received from the network, the
> only safe thing to do is to pre-initialize ip_proto.

Actually I think this is a real bug, because for the ETH_P_MPLS_* cases I cannot
see what will always set ip_proto before it gets used as an input.
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect()
@ 2015-06-25 13:33   ` David Miller
  0 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2015-06-25 13:33 UTC (permalink / raw)
  To: geert; +Cc: tom, jiri, netdev, linux-kernel

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Thu, 25 Jun 2015 15:10:32 +0200

> net/core/flow_dissector.c: In function ‘__skb_flow_dissect’:
> net/core/flow_dissector.c:132: warning: ‘ip_proto’ may be used uninitialized in this function
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> This may be a false positive, but the state machine in
> __skb_flow_dissect() is a bit hard to follow.
> As I believe it is controlled by a packet received from the network, the
> only safe thing to do is to pre-initialize ip_proto.

Actually I think this is a real bug, because for the ETH_P_MPLS_* cases I cannot
see what will always set ip_proto before it gets used as an input.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect()
  2015-06-25 13:33   ` David Miller
  (?)
@ 2015-06-25 13:48   ` Jiri Pirko
  -1 siblings, 0 replies; 7+ messages in thread
From: Jiri Pirko @ 2015-06-25 13:48 UTC (permalink / raw)
  To: David Miller; +Cc: geert, tom, netdev, linux-kernel

Thu, Jun 25, 2015 at 03:33:31PM CEST, davem@davemloft.net wrote:
>From: Geert Uytterhoeven <geert@linux-m68k.org>
>Date: Thu, 25 Jun 2015 15:10:32 +0200
>
>> net/core/flow_dissector.c: In function ‘__skb_flow_dissect’:
>> net/core/flow_dissector.c:132: warning: ‘ip_proto’ may be used uninitialized in this function
>> 
>> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
>> ---
>> This may be a false positive, but the state machine in
>> __skb_flow_dissect() is a bit hard to follow.
>> As I believe it is controlled by a packet received from the network, the
>> only safe thing to do is to pre-initialize ip_proto.
>
>Actually I think this is a real bug, because for the ETH_P_MPLS_* cases I cannot
>see what will always set ip_proto before it gets used as an input.

I think that MPLS cases are ok. In this case, return is always hit.
I believe this is false positive.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect()
  2015-06-25 13:10 [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect() Geert Uytterhoeven
  2015-06-25 13:33   ` David Miller
@ 2015-06-25 16:07 ` Tom Herbert
  2015-06-28 23:54   ` David Miller
  2 siblings, 0 replies; 7+ messages in thread
From: Tom Herbert @ 2015-06-25 16:07 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: David S. Miller, Jiri Pirko, Linux Kernel Network Developers, LKML

On Thu, Jun 25, 2015 at 6:10 AM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
> net/core/flow_dissector.c: In function ‘__skb_flow_dissect’:
> net/core/flow_dissector.c:132: warning: ‘ip_proto’ may be used uninitialized in this function
>
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> This may be a false positive, but the state machine in
> __skb_flow_dissect() is a bit hard to follow.
> As I believe it is controlled by a packet received from the network, the
> only safe thing to do is to pre-initialize ip_proto.
> ---
>  net/core/flow_dissector.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
> index 476e5dda59e19822..2a834c6179b9973e 100644
> --- a/net/core/flow_dissector.c
> +++ b/net/core/flow_dissector.c
> @@ -129,7 +129,7 @@ bool __skb_flow_dissect(const struct sk_buff *skb,
>         struct flow_dissector_key_ports *key_ports;
>         struct flow_dissector_key_tags *key_tags;
>         struct flow_dissector_key_keyid *key_keyid;
> -       u8 ip_proto;
> +       u8 ip_proto = 0;
>
>         if (!data) {
>                 data = skb->data;
> --
> 1.9.1
>

Acked-by: Tom Herbert <tom@herbertland.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect()
  2015-06-25 13:10 [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect() Geert Uytterhoeven
@ 2015-06-28 23:54   ` David Miller
  2015-06-25 16:07 ` Tom Herbert
  2015-06-28 23:54   ` David Miller
  2 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2015-06-28 23:54 UTC (permalink / raw)
  To: geert; +Cc: tom, jiri, netdev, linux-kernel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: Text/Plain; charset=iso-8859-7, Size: 486 bytes --]

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Thu, 25 Jun 2015 15:10:32 +0200

> net/core/flow_dissector.c: In function ¡__skb_flow_dissect¢:
> net/core/flow_dissector.c:132: warning: ¡ip_proto¢ may be used uninitialized in this function
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>

Applied, thanks.
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect()
@ 2015-06-28 23:54   ` David Miller
  0 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2015-06-28 23:54 UTC (permalink / raw)
  To: geert; +Cc: tom, jiri, netdev, linux-kernel

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Thu, 25 Jun 2015 15:10:32 +0200

> net/core/flow_dissector.c: In function ‘__skb_flow_dissect’:
> net/core/flow_dissector.c:132: warning: ‘ip_proto’ may be used uninitialized in this function
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>

Applied, thanks.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-06-28 23:54 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-25 13:10 [PATCH] flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect() Geert Uytterhoeven
2015-06-25 13:33 ` David Miller
2015-06-25 13:33   ` David Miller
2015-06-25 13:48   ` Jiri Pirko
2015-06-25 16:07 ` Tom Herbert
2015-06-28 23:54 ` David Miller
2015-06-28 23:54   ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.