From 154dcf3ea86d669a3fa1bf98bbbe6e5667395a40 Mon Sep 17 00:00:00 2001 From: zzhcharmer Date: Tue, 2 Sep 2025 10:09:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3sudo=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E7=9A=84=E6=95=B0=E7=BB=84=E8=B6=8A=E7=95=8C?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zzhcharmer --- sudo/src/main.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sudo/src/main.cpp b/sudo/src/main.cpp index 140586bf..65475918 100644 --- a/sudo/src/main.cpp +++ b/sudo/src/main.cpp @@ -233,7 +233,7 @@ static void GetUserPwd(char *pwdBuf, int bufLen) newTerm.c_lflag &= ~(ECHO); tcsetattr(STDIN_FILENO, TCSANOW, &newTerm); (void)fgets(pwdBuf, bufLen, stdin); - if (pwdBuf[strlen(pwdBuf) - 1] == '\n') { + if (strlen(pwdBuf) != 0 && pwdBuf[strlen(pwdBuf) - 1] == '\n') { pwdBuf[strlen(pwdBuf) - 1] = '\0'; } tcsetattr(STDIN_FILENO, TCSANOW, &oldTerm); @@ -337,6 +337,11 @@ static bool VerifyUserPin() } GetUserPwd(passwd, PWD_BUF_LEN); + if (strlen(passwd) == 0) { + WriteTty(USER_VERIFY_FAILED); + return pwdVerifyResult; + } + pwdVerifyResult = UserAccountVerify(passwd, strnlen(passwd, PWD_BUF_LEN)); memset_s(passwd, sizeof(passwd), 0, sizeof(passwd)); if (!pwdVerifyResult) { -- Gitee