diff mbox series

[net-next] net: sched: avoid uninitialized variable use

Message ID 20180118131747.920324-1-arnd@arndb.de
State New
Headers show
Series [net-next] net: sched: avoid uninitialized variable use | expand

Commit Message

Arnd Bergmann Jan. 18, 2018, 1:17 p.m. UTC
gcc has identified a code path in which we pass uninitialized
data into tc_dump_tfilter():

net/sched/cls_api.c: In function 'tc_dump_tfilter':
net/sched/cls_api.c:1268:8: error: 'parent' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This initializes the variable to the value it had before the previous
change.

Fixes: 7960d1daf278 ("net: sched: use block index as a handle instead of qdisc when block is shared")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

----
I don't know if my patch is the best way to address the issue, but
if not, then at least it helps show what the warning is about
and lets someone else come up with a better solution.
---
 net/sched/cls_api.c | 1 +
 1 file changed, 1 insertion(+)

-- 
2.9.0

Comments

Jiri Pirko Jan. 18, 2018, 1:49 p.m. UTC | #1
Thu, Jan 18, 2018 at 02:17:28PM CET, arnd@arndb.de wrote:
>gcc has identified a code path in which we pass uninitialized

>data into tc_dump_tfilter():

>

>net/sched/cls_api.c: In function 'tc_dump_tfilter':

>net/sched/cls_api.c:1268:8: error: 'parent' may be used uninitialized in this function [-Werror=maybe-uninitialized]

>

>This initializes the variable to the value it had before the previous

>change.

>

>Fixes: 7960d1daf278 ("net: sched: use block index as a handle instead of qdisc when block is shared")

>Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>----

>I don't know if my patch is the best way to address the issue, but

>if not, then at least it helps show what the warning is about

>and lets someone else come up with a better solution.


I already sent a fix for this:
http://patchwork.ozlabs.org/patch/862787/
Arnd Bergmann Jan. 18, 2018, 2:19 p.m. UTC | #2
On Thu, Jan 18, 2018 at 2:49 PM, Jiri Pirko <jiri@resnulli.us> wrote:
> Thu, Jan 18, 2018 at 02:17:28PM CET, arnd@arndb.de wrote:

>>gcc has identified a code path in which we pass uninitialized

>>data into tc_dump_tfilter():

>>

>>net/sched/cls_api.c: In function 'tc_dump_tfilter':

>>net/sched/cls_api.c:1268:8: error: 'parent' may be used uninitialized in this function [-Werror=maybe-uninitialized]

>>

>>This initializes the variable to the value it had before the previous

>>change.

>>

>>Fixes: 7960d1daf278 ("net: sched: use block index as a handle instead of qdisc when block is shared")

>>Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>>----

>>I don't know if my patch is the best way to address the issue, but

>>if not, then at least it helps show what the warning is about

>>and lets someone else come up with a better solution.

>

> I already sent a fix for this:

> http://patchwork.ozlabs.org/patch/862787/


Ok. I've looked at your patch for way too long now and still don't see how
you've shown it to be correct. Shouldn't there be a at least a comment
to explain why zero is an appropriate initialization value in that case?

      Arnd
Jiri Pirko Jan. 18, 2018, 2:32 p.m. UTC | #3
Thu, Jan 18, 2018 at 03:19:14PM CET, arnd@arndb.de wrote:
>On Thu, Jan 18, 2018 at 2:49 PM, Jiri Pirko <jiri@resnulli.us> wrote:

>> Thu, Jan 18, 2018 at 02:17:28PM CET, arnd@arndb.de wrote:

>>>gcc has identified a code path in which we pass uninitialized

>>>data into tc_dump_tfilter():

>>>

>>>net/sched/cls_api.c: In function 'tc_dump_tfilter':

>>>net/sched/cls_api.c:1268:8: error: 'parent' may be used uninitialized in this function [-Werror=maybe-uninitialized]

>>>

>>>This initializes the variable to the value it had before the previous

>>>change.

>>>

>>>Fixes: 7960d1daf278 ("net: sched: use block index as a handle instead of qdisc when block is shared")

>>>Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>>>----

>>>I don't know if my patch is the best way to address the issue, but

>>>if not, then at least it helps show what the warning is about

>>>and lets someone else come up with a better solution.

>>

>> I already sent a fix for this:

>> http://patchwork.ozlabs.org/patch/862787/

>

>Ok. I've looked at your patch for way too long now and still don't see how

>you've shown it to be correct. Shouldn't there be a at least a comment

>to explain why zero is an appropriate initialization value in that case?


Okay. Will add comment.


>

>      Arnd
diff mbox series

Patch

diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index e500d11da9cd..a95bfc8fc442 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -1317,6 +1317,7 @@  static int tc_dump_tfilter(struct sk_buff *skb, struct netlink_callback *cb)
 		block = tcf_block_lookup(net, tcm->tcm_block_index);
 		if (!block)
 			goto out;
+		parent = tcm->tcm_parent;
 	} else {
 		const struct Qdisc_class_ops *cops;
 		struct net_device *dev;