From 848fea1a01a4ddc1598150823d5d0784d3ef0be4 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 21 Jul 2023 15:27:00 +1200 Subject: [PATCH] lib/cmdline: Return if the commandline was redacted in samba_cmdline_burn() BUG: https://bugzilla.samba.org/show_bug.cgi?id=15289 Signed-off-by: Andrew Bartlett Reviewed-by: Douglas Bagnall --- lib/cmdline/cmdline.c | 7 +++++-- lib/cmdline/cmdline.h | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/cmdline/cmdline.c b/lib/cmdline/cmdline.c index de34a798aaf..9ee2d2af954 100644 --- a/lib/cmdline/cmdline.c +++ b/lib/cmdline/cmdline.c @@ -135,8 +135,9 @@ void samba_cmdline_set_machine_account_fn( cli_credentials_set_machine_account_fn = fn; } -void samba_cmdline_burn(int argc, char *argv[]) +bool samba_cmdline_burn(int argc, char *argv[]) { + bool burnt = false; bool found = false; bool is_user = false; char *p = NULL; @@ -146,7 +147,7 @@ void samba_cmdline_burn(int argc, char *argv[]) for (i = 0; i < argc; i++) { p = argv[i]; if (p == NULL) { - return; + return false; } if (strncmp(p, "-U", 2) == 0) { @@ -181,8 +182,10 @@ void samba_cmdline_burn(int argc, char *argv[]) memset_s(p, strlen(p), '\0', strlen(p)); found = false; is_user = false; + burnt = true; } } + return burnt; } static bool is_popt_table_end(const struct poptOption *o) diff --git a/lib/cmdline/cmdline.h b/lib/cmdline/cmdline.h index 19d1503ac59..ce5dd2392df 100644 --- a/lib/cmdline/cmdline.h +++ b/lib/cmdline/cmdline.h @@ -147,8 +147,10 @@ void samba_cmdline_set_machine_account_fn( * @param[in] argc The number of arguments. * * @param[in] argv[] The argument array we should remove secrets from. + * + * @return true if a password was removed, false otherwise. */ -void samba_cmdline_burn(int argc, char *argv[]); +bool samba_cmdline_burn(int argc, char *argv[]); /** * @brief Sanity check the command line options. -- 2.47.3