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:04:04 -0700
Newsgroups dev.linux.lists.kernelci,dev.linux.lists.linux-staging,org.kernel.vger.stable
Message-ID <20251124220404.GA2853001@ax162>
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?

Cheers,
Nathan