Re: [REGRESSION] stable-rc/linux-6.12.y: (build) variable 'val' is uninitialized when passed as a const pointer arg...

Nathan Chancellor <[email protected]> Mon, 24 Nov 2025 15:40:46 -0700
Newsgroups dev.linux.lists.kernelci,dev.linux.lists.linux-staging,org.kernel.vger.stable
Message-ID <20251124224046.GA3142687@ax162>
On Mon, Nov 24, 2025 at 02:35:26PM -0800, Guenter Roeck wrote:
> On Mon, Nov 24, 2025 at 2:04 PM Nathan Chancellor <[email protected]> wrote:
> >
> > On Mon, Nov 24, 2025 at 12:59:08PM -0000, KernelCI bot wrote:
> > > Hello,
> > >
> > > New build issue found on stable-rc/linux-6.12.y:
> > >
> > > ---
> > >  variable 'val' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] in drivers/staging/rtl8712/rtl8712_cmd.o (drivers/staging/rtl8712/rtl8712_cmd.c) [logspec:kbuild,kbuild.compiler.error]
> > > ---
> > >
> > > - dashboard: https://d.kernelci.org/i/maestro:5b83acc62508c670164c5fceb3079a2d7d74e154
> > > - giturl: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> > > - commit HEAD:  d5dc97879a97b328a89ec092271faa3db9f2bff3
> > > - tags: v6.12.59
> > >
> > >
> > > Log excerpt:
> > > =====================================================
> > > drivers/staging/rtl8712/rtl8712_cmd.c:148:28: error: variable 'val' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer]
> > >   148 |                 memcpy(pcmd->rsp, (u8 *)&val, pcmd->rspsz);
> > >       |                                          ^~~
> > > 1 error generated.
> >
> > This comes from a new subwarning of -Wuninitialized introduced in
> > clang-21:
> >
> >   https://github.com/llvm/llvm-project/commit/00dacf8c22f065cb52efb14cd091d441f19b319e
> >
> > This driver was removed upstream in commit 41e883c137eb ("staging:
> > rtl8712: Remove driver using deprecated API wext") in 6.13 so this only
> > impacts stable.
> >
> > This certainly does look broken...
> >
> >   static u8 read_rfreg_hdl(struct _adapter *padapter, u8 *pbuf)
> >   {
> >       u32 val;
> >       void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd);
> >       struct cmd_obj *pcmd  = (struct cmd_obj *)pbuf;
> >
> >       if (pcmd->rsp && pcmd->rspsz > 0)
> >           memcpy(pcmd->rsp, (u8 *)&val, pcmd->rspsz);
> >
> > Presumably this is never actually hit? It is rather hard to follow the
> > indirection in this driver but it does not seem like _Read_RFREG is ever
> > set as a cmdcode? Unfortunately, the only maintainer I see listed for
> > this file is Florian Schilhabel but a glance at lore shows no recent
> > activity so that probably won't be too much help. At the very least, we
> > could just zero initialize val, it cannot be any worse than what it is
> > currently doing and copying stack garbage?
> >
> 
> Or backport the patch removing the driver ? It is in staging, after
> all, so I don't know if there is value in trying to keep it alive in
> 6.12.y.

That would likely not be the end of the world for 6.12.y but this
warning appears all the way back to at least 5.15 (the point I start
caring about warnings because of CONFIG_WERROR).

Cheers,
Nathan