lib/cmdline: Return if the commandline was redacted in samba_cmdline_burn()
authorAndrew Bartlett <abartlet@samba.org>
Fri, 21 Jul 2023 03:27:00 +0000 (15:27 +1200)
committerJule Anger <janger@samba.org>
Fri, 4 Aug 2023 07:02:15 +0000 (07:02 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15289

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
(cherry picked from commit 848fea1a01a4ddc1598150823d5d0784d3ef0be4)

lib/cmdline/cmdline.c
lib/cmdline/cmdline.h

index 9f4e964f28939be5b192707e40822e146583cf72..2f11804fe5e6dae985188a3c97b68c415cbcac0e 100644 (file)
@@ -134,8 +134,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;
@@ -145,7 +146,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) {
@@ -180,8 +181,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)
index e254a1db5c382e90a6e9fece0186b9ab485a9983..b9cb4764bea7227ed74dff23eedb4ca34d48bd70 100644 (file)
@@ -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.