diff --git a/src/bin/multiuser/Jamfile b/src/bin/multiuser/Jamfile index fb81e3cc64..13306c51de 100644 --- a/src/bin/multiuser/Jamfile +++ b/src/bin/multiuser/Jamfile @@ -6,14 +6,16 @@ UsePrivateHeaders kernel ; # for UsePrivateHeaders libroot ; UsePrivateHeaders shared ; +UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; +SubDirC++Flags [ FDefines _BSD_SOURCE=1 ] ; StaticLibrary libmultiuser_utils.a : multiuser_utils.cpp ; -BinCommand login : login.cpp : libmultiuser_utils.a ; +BinCommand login : login.cpp : libmultiuser_utils.a libbsd.so ; -BinCommand su : su.cpp : libmultiuser_utils.a ; +BinCommand su : su.cpp : libmultiuser_utils.a libbsd.so ; -BinCommand passwd : passwd.cpp : libmultiuser_utils.a ; +BinCommand passwd : passwd.cpp : libmultiuser_utils.a libbsd.so ; BinCommand useradd : useradd.cpp ; diff --git a/src/bin/multiuser/login.cpp b/src/bin/multiuser/login.cpp index 37c01f0866..416daea353 100644 --- a/src/bin/multiuser/login.cpp +++ b/src/bin/multiuser/login.cpp @@ -91,7 +91,7 @@ login(const char* user, struct passwd** _passwd) struct spwd* spwd = getspnam(user); bool ok = verify_password(passwd, spwd, password); - memset(password, 0, sizeof(password)); + explicit_bzero(password, sizeof(password)); if (!ok) return B_PERMISSION_DENIED; diff --git a/src/bin/multiuser/multiuser_utils.cpp b/src/bin/multiuser/multiuser_utils.cpp index d8804b193f..d43b82ab0b 100644 --- a/src/bin/multiuser/multiuser_utils.cpp +++ b/src/bin/multiuser/multiuser_utils.cpp @@ -140,7 +140,7 @@ authenticate_user(const char* prompt, passwd* passwd, spwd* spwd, int maxTries, // check it bool ok = verify_password(passwd, spwd, plainPassword); - memset(plainPassword, 0, sizeof(plainPassword)); + explicit_bzero(plainPassword, sizeof(plainPassword)); if (ok) return B_OK; diff --git a/src/bin/multiuser/passwd.cpp b/src/bin/multiuser/passwd.cpp index 33df0c54bd..3c47d25296 100644 --- a/src/bin/multiuser/passwd.cpp +++ b/src/bin/multiuser/passwd.cpp @@ -169,11 +169,11 @@ main(int argc, const char* const* argv) exit(1); } - memset(repeatedPassword, 0, sizeof(repeatedPassword)); + explicit_bzero(repeatedPassword, sizeof(repeatedPassword)); // crypt it encryptedPassword = crypt(password, NULL); - memset(password, 0, sizeof(password)); + explicit_bzero(password, sizeof(password)); } // prepare request for the registrar