]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
memstick: core: Zero initialize id_reg in h_memstick_read_dev_id()
authorNathan Chancellor <nathan@kernel.org>
Tue, 15 Jul 2025 22:56:05 +0000 (15:56 -0700)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 16 Jul 2025 10:01:09 +0000 (12:01 +0200)
A new warning in clang [1] points out that id_reg is uninitialized then
passed to memstick_init_req() as a const pointer:

  drivers/memstick/core/memstick.c:330:59: error: variable 'id_reg' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer]
    330 |                 memstick_init_req(&card->current_mrq, MS_TPC_READ_REG, &id_reg,
        |                                                                         ^~~~~~

Commit de182cc8e882 ("drivers/memstick/core/memstick.c: avoid -Wnonnull
warning") intentionally passed this variable uninitialized to avoid an
-Wnonnull warning from a NULL value that was previously there because
id_reg is never read from the call to memstick_init_req() in
h_memstick_read_dev_id(). Just zero initialize id_reg to avoid the
warning, which is likely happening in the majority of builds using
modern compilers that support '-ftrivial-auto-var-init=zero'.

Cc: stable@vger.kernel.org
Fixes: de182cc8e882 ("drivers/memstick/core/memstick.c: avoid -Wnonnull warning")
Link: https://github.com/llvm/llvm-project/commit/00dacf8c22f065cb52efb14cd091d441f19b319e
Closes: https://github.com/ClangBuiltLinux/linux/issues/2105
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/20250715-memstick-fix-uninit-const-pointer-v1-1-f6753829c27a@kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/memstick/core/memstick.c

index 043b9ec756ff27b79a19910a51d7c5308a7fe4e8..7f3f47db4c98a5310dacce682299759aa3b44fce 100644 (file)
@@ -324,7 +324,7 @@ EXPORT_SYMBOL(memstick_init_req);
 static int h_memstick_read_dev_id(struct memstick_dev *card,
                                  struct memstick_request **mrq)
 {
-       struct ms_id_register id_reg;
+       struct ms_id_register id_reg = {};
 
        if (!(*mrq)) {
                memstick_init_req(&card->current_mrq, MS_TPC_READ_REG, &id_reg,