Message ID | 20220108143319.3986923-1-trix@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Commit | c579792562837ec2e64b006cfc9423e4177a4d26 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | can: janz-ican3: initialize dlc variable | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Series ignored based on subject |
On Sat. 8 Jan 2022 à 23:33, <trix@redhat.com> wrote: > From: Tom Rix <trix@redhat.com> > > Clang static analysis reports this problem > janz-ican3.c:1311:2: warning: Undefined or garbage value returned to caller > return dlc; > ^~~~~~~~~~ > > dlc is only set with this conditional > if (!(cf->can_id & CAN_RTR_FLAG)) > dlc = cf->len; > > But is always returned. So initialize dlc to 0. Yes. The actual intent is to return a length of 0 for RTR frames. > Fixes: cc4b08c31b5c ("can: do not increase tx_bytes statistics for RTR frames") > Signed-off-by: Tom Rix <trix@redhat.com> > --- > drivers/net/can/janz-ican3.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c > index 5b677af5f2a41..808c105cf8f7e 100644 > --- a/drivers/net/can/janz-ican3.c > +++ b/drivers/net/can/janz-ican3.c > @@ -1285,7 +1285,7 @@ static unsigned int ican3_get_echo_skb(struct ican3_dev *mod) > { > struct sk_buff *skb = skb_dequeue(&mod->echoq); > struct can_frame *cf; > - u8 dlc; > + u8 dlc = 0; > > /* this should never trigger unless there is a driver bug */ > if (!skb) { > -- > 2.26.3 I missed that when writing the patch. I thought that I did my due diligence by running a "make W=1" with GCC but I did not catch the error. I should have been more precocious and run a "make W=2". Thank you. Acked-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Hello: This patch was applied to netdev/net-next.git (master) by Marc Kleine-Budde <mkl@pengutronix.de>: On Sat, 8 Jan 2022 06:33:19 -0800 you wrote: > From: Tom Rix <trix@redhat.com> > > Clang static analysis reports this problem > janz-ican3.c:1311:2: warning: Undefined or garbage value returned to caller > return dlc; > ^~~~~~~~~~ > > [...] Here is the summary with links: - can: janz-ican3: initialize dlc variable https://git.kernel.org/netdev/net-next/c/c57979256283 You are awesome, thank you!
diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c index 5b677af5f2a41..808c105cf8f7e 100644 --- a/drivers/net/can/janz-ican3.c +++ b/drivers/net/can/janz-ican3.c @@ -1285,7 +1285,7 @@ static unsigned int ican3_get_echo_skb(struct ican3_dev *mod) { struct sk_buff *skb = skb_dequeue(&mod->echoq); struct can_frame *cf; - u8 dlc; + u8 dlc = 0; /* this should never trigger unless there is a driver bug */ if (!skb) {