diff options
Diffstat (limited to 'Kernel/Sources/User.cxx')
| -rw-r--r-- | Kernel/Sources/User.cxx | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/Kernel/Sources/User.cxx b/Kernel/Sources/User.cxx index 46dd0d76..ee825400 100644 --- a/Kernel/Sources/User.cxx +++ b/Kernel/Sources/User.cxx @@ -58,6 +58,8 @@ namespace Kernel Bool User::TrySave(const Char* password) noexcept { + kcout << "Trying to save password...\r"; + SizeT len = rt_string_len(password); Char* token = new Char[len]; @@ -70,17 +72,28 @@ namespace Kernel if (NewFilesystemManager::GetMounted()) { - if (auto dir = NewFilesystemManager::GetMounted()->CreateDirectory("\\Users")) + if (auto dir = NewFilesystemManager::GetMounted()->CreateDirectory("\\Users"); + dir) + { delete dir; + } + else + { + delete token; + return false; + } auto node = NewFilesystemManager::GetMounted()->Create(kUsersFile); NewFilesystemManager::GetMounted()->Write(this->fUserName.CData(), node, (VoidPtr)token, this->IsStdUser() ? 0xCF : 0xEF, len); delete node; + delete token; return true; } + delete token; + return false; } |
