From dde90f1d4746a2efef20fc227cd38bbcb58d546c Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 17 Jul 2025 17:34:14 +0200 Subject: libbb.h: increase MAX_PW_SALT_LEN Signed-off-by: Denys Vlasenko --- include/libbb.h | 12 ++++++------ loginutils/cryptpw.c | 3 +-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/include/libbb.h b/include/libbb.h index 79427fb31..4f44680aa 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -1825,14 +1825,14 @@ extern int obscure(const char *old, const char *newval, const struct passwd *pwd extern int crypt_make_rand64encoded(char *p, int cnt /*, int rnd*/) FAST_FUNC; /* Size of char salt[] to hold randomly-generated salt string * sha256/512: - * "$5$" - * "$6$" - * #define MAX_PW_SALT_LEN (3 + 16 + 1) + * "$5$" ["rounds=999999999$"] "" + * "$6$" ["rounds=999999999$"] "" + * #define MAX_PW_SALT_LEN (3 + sizeof("rounds=999999999$")-1 + 16 + 1) * yescrypt: - * "$y$" "$" - * (84 chars are ascii64-encoded 64 binary bytes) + * "$y$" "$" + * (86 chars are ascii64-encoded 64 binary bytes) */ -#define MAX_PW_SALT_LEN (3 + 8*6 + 1 + 84 + 1) +#define MAX_PW_SALT_LEN (3 + 8*6 + 1 + 86 + 1) extern char* crypt_make_pw_salt(char p[MAX_PW_SALT_LEN], const char *algo) FAST_FUNC; /* Returns number of lines changed, or -1 on error */ diff --git a/loginutils/cryptpw.c b/loginutils/cryptpw.c index 1c338540f..c0f6280cd 100644 --- a/loginutils/cryptpw.c +++ b/loginutils/cryptpw.c @@ -84,8 +84,7 @@ to cryptpw. -a option (alias for -m) came from cryptpw. int cryptpw_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int cryptpw_main(int argc UNUSED_PARAM, char **argv) { - /* Supports: cryptpw -m sha256 PASS 'rounds=999999999$SALT' */ - char salt[MAX_PW_SALT_LEN + sizeof("rounds=999999999$")]; + char salt[MAX_PW_SALT_LEN]; char *salt_ptr; char *password; const char *opt_m, *opt_S; -- cgit v1.2.3-55-g6feb