From: Alejandro Colomar Date: Mon, 5 Feb 2024 12:54:25 +0000 (+0100) Subject: src/login.c: Fix off-by-one bugss X-Git-Tag: 4.14.6~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d6a9b726037520be96dc5dcf88f0b9d165c3ccb3;p=thirdparty%2Fshadow.git src/login.c: Fix off-by-one bugss These functions expect a size, not a length. Don't subtract 1 to the size. Link: Link: Link: Link: See-also: 0656a90bfd0d ("src/login.c: Fix off-by-one buggs") See-also: 403a2e3771be ("lib/chkname.c: Take NUL byte into account") Fixes: 3b7cc053872c ("lib: replace `USER_NAME_MAX_LENGTH` macro") Reviewed-by: Iker Pedrosa Cc: Tobias Stoeckmann Cc: Serge Hallyn Signed-off-by: Alejandro Colomar Cherry-picked-from: 15882a5f904b ("src/login.c: Fix off-by-one bugss") Link: Signed-off-by: Alejandro Colomar --- diff --git a/src/login.c b/src/login.c index 9ab2678f7..c0ae3a1b3 100644 --- a/src/login.c +++ b/src/login.c @@ -577,7 +577,7 @@ int main (int argc, char **argv) assert (NULL == username); username = XMALLOC(max_size, char); username[max_size - 1] = '\0'; - if (do_rlogin(hostname, username, max_size - 1, term, sizeof(term))) + if (do_rlogin(hostname, username, max_size, term, sizeof(term))) { preauth_flag = true; } else { @@ -896,7 +896,7 @@ int main (int argc, char **argv) preauth_flag = false; username = XMALLOC(max_size, char); username[max_size - 1] = '\0'; - login_prompt(username, max_size - 1); + login_prompt(username, max_size); if ('\0' == username[0]) { /* Prompt for a new login */