On Mon, Oct 09, 2023 at 01:53:16PM +0200, Ahmad Fatoum wrote: > clang is unhappy about this. While I can't see how s_len could be used > uninitialized, there's value in silencing these warnings, so the real > issues are not as easy to overlook. Well we have: if (file) read_file_2(file, &s_len, (void *)&secret_str, FILESIZE_MAX); else if (secret_str) s_len = strlen(secret_str); So s_len could be uninitialized after this when both file and secret_str are NULL. This can't happen due to: if (!do_remove && !file && !secret_str) return COMMAND_ERROR_USAGE; and later: if (do_remove) { ... return 0; } While I agree that s_len shouldn't slip through uninitialized this is really buried in the code and I do not wonder when a compiler doesn't catch this correctly. Anyway, applied, thanks Sascha > > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > commands/keystore.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/commands/keystore.c b/commands/keystore.c > index 4922cf1bebe9..40bcb7105d75 100644 > --- a/commands/keystore.c > +++ b/commands/keystore.c > @@ -17,7 +17,7 @@ static int do_keystore(int argc, char *argv[]) > const char *file = NULL; > char *secret_str = NULL; > void *secret; > - size_t s_len; > + size_t s_len = 0; > > while ((opt = getopt(argc, argv, "rs:f:")) > 0) { > switch (opt) { > -- > 2.39.2 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |