* [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.