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

Guenter Roeck <[email protected]> Mon, 24 Nov 2025 14:35:26 -0800
Newsgroups dev.linux.lists.kernelci,dev.linux.lists.linux-staging,org.kernel.vger.stable
Message-ID <CABXOdTfbsoNdv6xMCppMq=JsfNBarp6YyFV4por3eA3cSWdT7g@mail.gmail.com>
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.

Guenter

> Cheers,
> Nathan
>