From: Kees Cook <keescook@chromium.org> To: Nick Desaulniers <ndesaulniers@google.com> Cc: LKML <linux-kernel@vger.kernel.org>, Linus Torvalds <torvalds@linux-foundation.org>, Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>, Alexander Potapenko <glider@google.com>, Joe Perches <joe@perches.com>, Andy Whitcroft <apw@canonical.com>, "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)" <x86@kernel.org>, drbd-dev@lists.linbit.com, linux-block@vger.kernel.org, b43-dev@lists.infradead.org, Network Development <netdev@vger.kernel.org>, Linux Doc Mailing List <linux-doc@vger.kernel.org>, linux-wireless <linux-wireless@vger.kernel.org>, linux-ide@vger.kernel.org, linux-clk@vger.kernel.org, linux-spi@vger.kernel.org, Linux Memory Management List <linux-mm@kvack.org>, clang-built-linux <clang-built-linux@googlegroups.com> Subject: Re: [PATCH v2 04/16] b43: Remove uninitialized_var() usage Date: Mon, 22 Jun 2020 14:04:04 -0700 [thread overview] Message-ID: <202006221403.EEAD37E94B@keescook> (raw) In-Reply-To: <CAKwvOdmsXuqx-3Rt_KNFq4psAeFjG2-7qQaqkJ7dDqqmscUFNw@mail.gmail.com> On Mon, Jun 22, 2020 at 10:04:18AM -0700, Nick Desaulniers wrote: > On Fri, Jun 19, 2020 at 8:30 PM Kees Cook <keescook@chromium.org> wrote: > > > > Using uninitialized_var() is dangerous as it papers over real bugs[1] > > (or can in the future), and suppresses unrelated compiler warnings (e.g. > > "unused variable"). If the compiler thinks it is uninitialized, either > > simply initialize the variable or make compiler changes. As a precursor > > to removing[2] this[3] macro[4], just initialize this variable to NULL. > > No later NULL deref is possible due to the early returns outside of the > > (phy->rev >= 7 && phy->rev < 19) case, which explicitly tests for NULL. > > > > [1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/ > > [2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/ > > [3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/ > > [4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/ > > > > Fixes: 58619b14d106 ("b43: move under broadcom vendor directory") > > Signed-off-by: Kees Cook <keescook@chromium.org> > > I see three total uses of uninitialized_var() in this file, do we want > to eliminate all of them? This is the only one that needed an explicit initialization -- all the others are handled in the treewide patch. I *could* split it out here, but I found it easier to keep the "no op" changes together in the treewide patch. -Kees > > > --- > > drivers/net/wireless/broadcom/b43/phy_n.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/wireless/broadcom/b43/phy_n.c b/drivers/net/wireless/broadcom/b43/phy_n.c > > index c33b4235839d..46db91846007 100644 > > --- a/drivers/net/wireless/broadcom/b43/phy_n.c > > +++ b/drivers/net/wireless/broadcom/b43/phy_n.c > > @@ -4222,7 +4222,7 @@ static void b43_nphy_tx_gain_table_upload(struct b43_wldev *dev) > > u32 rfpwr_offset; > > u8 pga_gain, pad_gain; > > int i; > > - const s16 *uninitialized_var(rf_pwr_offset_table); > > + const s16 *rf_pwr_offset_table = NULL; > > > > table = b43_nphy_get_tx_gain_table(dev); > > if (!table) > > -- > > -- > Thanks, > ~Nick Desaulniers -- Kees Cook
WARNING: multiple messages have this Message-ID (diff)
From: Kees Cook <keescook@chromium.org> To: Nick Desaulniers <ndesaulniers@google.com> Cc: LKML <linux-kernel@vger.kernel.org>, Linus Torvalds <torvalds@linux-foundation.org>, Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>, Alexander Potapenko <glider@google.com>, Joe Perches <joe@perches.com>, Andy Whitcroft <apw@canonical.com>, "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)" <x86@kernel.org>, drbd-dev@lists.linbit.com, linux-block@vger.kernel.org, b43-dev@lists.infradead.org, Network Development <netdev@vger.kernel.org>, Linux Doc Mailing List <linux-doc@vger.kernel.org>, linux-wireless <linux-wireless@vger.kernel.org>, linux-ide@vger.kernel.org, linux-clk@vger.kernel.org, linux-spi@vger.kernel.org, Linux Memory Management List <linux-mm@kvack.org>, clang-built-linux <clang-built-linux@googlegroups.com> Subject: [PATCH v2 04/16] b43: Remove uninitialized_var() usage Date: Mon, 22 Jun 2020 14:04:04 -0700 [thread overview] Message-ID: <202006221403.EEAD37E94B@keescook> (raw) In-Reply-To: <CAKwvOdmsXuqx-3Rt_KNFq4psAeFjG2-7qQaqkJ7dDqqmscUFNw@mail.gmail.com> On Mon, Jun 22, 2020 at 10:04:18AM -0700, Nick Desaulniers wrote: > On Fri, Jun 19, 2020 at 8:30 PM Kees Cook <keescook@chromium.org> wrote: > > > > Using uninitialized_var() is dangerous as it papers over real bugs[1] > > (or can in the future), and suppresses unrelated compiler warnings (e.g. > > "unused variable"). If the compiler thinks it is uninitialized, either > > simply initialize the variable or make compiler changes. As a precursor > > to removing[2] this[3] macro[4], just initialize this variable to NULL. > > No later NULL deref is possible due to the early returns outside of the > > (phy->rev >= 7 && phy->rev < 19) case, which explicitly tests for NULL. > > > > [1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider at google.com/ > > [2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw at mail.gmail.com/ > > [3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg at mail.gmail.com/ > > [4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA at mail.gmail.com/ > > > > Fixes: 58619b14d106 ("b43: move under broadcom vendor directory") > > Signed-off-by: Kees Cook <keescook@chromium.org> > > I see three total uses of uninitialized_var() in this file, do we want > to eliminate all of them? This is the only one that needed an explicit initialization -- all the others are handled in the treewide patch. I *could* split it out here, but I found it easier to keep the "no op" changes together in the treewide patch. -Kees > > > --- > > drivers/net/wireless/broadcom/b43/phy_n.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/wireless/broadcom/b43/phy_n.c b/drivers/net/wireless/broadcom/b43/phy_n.c > > index c33b4235839d..46db91846007 100644 > > --- a/drivers/net/wireless/broadcom/b43/phy_n.c > > +++ b/drivers/net/wireless/broadcom/b43/phy_n.c > > @@ -4222,7 +4222,7 @@ static void b43_nphy_tx_gain_table_upload(struct b43_wldev *dev) > > u32 rfpwr_offset; > > u8 pga_gain, pad_gain; > > int i; > > - const s16 *uninitialized_var(rf_pwr_offset_table); > > + const s16 *rf_pwr_offset_table = NULL; > > > > table = b43_nphy_get_tx_gain_table(dev); > > if (!table) > > -- > > -- > Thanks, > ~Nick Desaulniers -- Kees Cook
next prev parent reply other threads:[~2020-06-22 21:04 UTC|newest] Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-06-20 3:29 [PATCH v2 00/16] Remove uninitialized_var() macro Kees Cook 2020-06-20 3:29 ` [PATCH v2 01/16] docs: deprecated.rst: Add uninitialized_var() Kees Cook 2020-06-22 16:59 ` Nick Desaulniers 2020-06-22 16:59 ` Nick Desaulniers 2020-06-22 16:59 ` Nick Desaulniers 2020-06-20 3:29 ` [PATCH v2 02/16] x86/mm/numa: Remove uninitialized_var() usage Kees Cook 2020-06-20 3:29 ` [PATCH v2 03/16] drbd: " Kees Cook 2020-06-20 3:29 ` [PATCH v2 04/16] b43: " Kees Cook 2020-06-22 17:04 ` Nick Desaulniers 2020-06-22 17:04 ` Nick Desaulniers 2020-06-22 17:04 ` Nick Desaulniers 2020-06-22 21:04 ` Kees Cook [this message] 2020-06-22 21:04 ` Kees Cook 2020-06-23 18:29 ` Nick Desaulniers 2020-06-23 18:29 ` Nick Desaulniers 2020-06-23 18:29 ` Nick Desaulniers 2020-07-15 10:37 ` Kalle Valo 2020-07-15 10:37 ` Kalle Valo 2020-07-15 10:37 ` Kalle Valo 2020-06-20 3:29 ` [PATCH v2 05/16] rtlwifi: rtl8192cu: " Kees Cook 2020-06-20 3:29 ` [PATCH v2 06/16] ide: " Kees Cook 2020-06-20 3:29 ` [PATCH v2 07/16] clk: st: " Kees Cook 2020-06-22 9:03 ` Stephen Boyd 2020-06-22 9:03 ` Stephen Boyd 2020-06-20 3:29 ` [PATCH v2 08/16] spi: davinci: " Kees Cook 2020-07-01 20:39 ` Mark Brown 2020-07-01 20:39 ` Mark Brown 2020-07-02 15:21 ` Kees Cook 2020-07-02 15:21 ` Kees Cook 2020-07-02 15:23 ` Mark Brown 2020-07-02 15:23 ` Mark Brown 2020-07-02 15:42 ` Kees Cook 2020-07-02 15:42 ` Kees Cook 2020-07-02 16:23 ` Joe Perches 2020-07-02 16:23 ` Joe Perches 2020-07-02 16:23 ` Joe Perches 2020-06-20 3:30 ` [PATCH v2 09/16] clk: spear: " Kees Cook 2020-06-22 9:03 ` Stephen Boyd 2020-06-22 9:03 ` Stephen Boyd 2020-06-20 3:30 ` [PATCH v2 10/16] KVM: PPC: Book3S PR: " Kees Cook 2020-06-22 17:22 ` Nick Desaulniers 2020-06-22 17:22 ` Nick Desaulniers 2020-06-22 17:22 ` Nick Desaulniers 2020-06-20 3:30 ` [PATCH v2 11/16] media: sur40: " Kees Cook 2020-06-22 18:39 ` Nick Desaulniers 2020-06-22 18:39 ` Nick Desaulniers 2020-06-22 18:39 ` Nick Desaulniers 2020-06-20 3:30 ` [PATCH v2 12/16] f2fs: Eliminate usage of uninitialized_var() macro Kees Cook 2020-06-20 3:30 ` [PATCH v2 14/16] checkpatch: Remove awareness " Kees Cook 2020-06-20 3:30 ` [PATCH v2 15/16] treewide: Remove uninitialized_var() usage Kees Cook 2020-06-22 11:32 ` Dan Carpenter 2020-06-22 11:32 ` Dan Carpenter 2020-06-20 3:30 ` [PATCH v2 16/16] compiler: Remove uninitialized_var() macro Kees Cook 2020-06-20 3:30 ` [PATCH v2 13/16] mm/debug_vm_pgtable: Remove uninitialized_var() usage Kees Cook 2020-06-22 17:27 ` Nick Desaulniers 2020-06-22 17:27 ` Nick Desaulniers 2020-06-22 17:27 ` Nick Desaulniers 2020-06-20 7:03 ` [PATCH v2 00/16] Remove uninitialized_var() macro Sedat Dilek 2020-06-20 7:03 ` Sedat Dilek 2020-06-20 15:57 ` Kees Cook 2020-06-22 9:07 ` Sedat Dilek 2020-06-22 9:07 ` Sedat Dilek 2020-06-22 9:07 ` Sedat Dilek
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202006221403.EEAD37E94B@keescook \ --to=keescook@chromium.org \ --cc=apw@canonical.com \ --cc=b43-dev@lists.infradead.org \ --cc=clang-built-linux@googlegroups.com \ --cc=drbd-dev@lists.linbit.com \ --cc=glider@google.com \ --cc=joe@perches.com \ --cc=linux-block@vger.kernel.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-ide@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux-spi@vger.kernel.org \ --cc=linux-wireless@vger.kernel.org \ --cc=miguel.ojeda.sandonis@gmail.com \ --cc=ndesaulniers@google.com \ --cc=netdev@vger.kernel.org \ --cc=torvalds@linux-foundation.org \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.