From 708e27d82deb770b9d91a2ab5cb90d3f681e5b41 Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on Windows 11)" <rob@synchro.net> Date: Fri, 11 Apr 2025 18:09:05 -0700 Subject: [PATCH] Re-generate random password if it doesn't meet our quality standards Log a message before the regenerate loop, just in case this loops forever. :-) --- src/sbbs3/newuser.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp index 57607765a8..ce5d56cf55 100644 --- a/src/sbbs3/newuser.cpp +++ b/src/sbbs3/newuser.cpp @@ -363,13 +363,16 @@ bool sbbs_t::newuser() else lprintf(LOG_NOTICE, "Rejected RLogin password for new user"); } - c = 0; - while (c < MAX(RAND_PASS_LEN, cfg.min_pwlen)) { /* Create random password */ - useron.pass[c] = sbbs_random(43) + '0'; - if (IS_ALPHANUMERIC(useron.pass[c])) - c++; - } - useron.pass[c] = 0; + lprintf(LOG_INFO, "Generating a random password for new user"); + do { + c = 0; + while (c < MAX(RAND_PASS_LEN, cfg.min_pwlen)) { /* Create random password */ + useron.pass[c] = sbbs_random(43) + '0'; + if (IS_ALPHANUMERIC(useron.pass[c])) + c++; + } + useron.pass[c] = 0; + } while (!check_pass(&cfg, useron.pass, &useron, /* unique: */false, /* reason: */NULL)); bprintf(text[YourPasswordIs], useron.pass); -- GitLab