]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
extract-cert: Wrap key_pass with '#ifdef USE_PKCS11_ENGINE'
authorNathan Chancellor <nathan@kernel.org>
Thu, 26 Mar 2026 01:19:15 +0000 (18:19 -0700)
committerNathan Chancellor <nathan@kernel.org>
Thu, 16 Apr 2026 21:21:10 +0000 (14:21 -0700)
A recent strengthening of -Wunused-but-set-variable (enabled with -Wall)
in clang under a new subwarning, -Wunused-but-set-global, points out an
unused static global variable in certs/extract-cert.c:

  certs/extract-cert.c:46:20: error: variable 'key_pass' set but not used [-Werror,-Wunused-but-set-global]
     46 | static const char *key_pass;
        |                    ^

After commit 558bdc45dfb2 ("sign-file,extract-cert: use pkcs11 provider
for OPENSSL MAJOR >= 3"), key_pass is only used with the OpenSSL engine
API, not the new provider API. Wrap key_pass's declaration and
assignment with '#ifdef USE_PKCS11_ENGINE' so that it is only included
with its use to clear up the warning. While this is a little uglier than
just marking key_pass with the unused attribute, this will make it
easier to clean up all code associated with the use of the engine API if
it were ever removed in the future. While in the area, use a tab for
the key_pass assignment line to match the rest of the file.

Cc: stable@vger.kernel.org
Fixes: 558bdc45dfb2 ("sign-file,extract-cert: use pkcs11 provider for OPENSSL MAJOR >= 3")
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Link: https://patch.msgid.link/20260325-certs-extract-cert-key_pass-unused-but-set-global-v1-1-ecf94326d532@kernel.org
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
certs/extract-cert.c

index 7d6d468ed6129dc8c031bb235641cb94466e858d..54ecd10242746c3e623184725187a32882538f3a 100644 (file)
@@ -43,7 +43,9 @@ void format(void)
        exit(2);
 }
 
+#ifdef USE_PKCS11_ENGINE
 static const char *key_pass;
+#endif
 static BIO *wb;
 static char *cert_dst;
 static bool verbose;
@@ -135,7 +137,9 @@ int main(int argc, char **argv)
        if (verbose_env && strchr(verbose_env, '1'))
                verbose = true;
 
-        key_pass = getenv("KBUILD_SIGN_PIN");
+#ifdef USE_PKCS11_ENGINE
+       key_pass = getenv("KBUILD_SIGN_PIN");
+#endif
 
        if (argc != 3)
                format();