diff options
| author | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-08-10 10:35:44 +0200 |
|---|---|---|
| committer | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-08-10 10:35:44 +0200 |
| commit | 192892221333113b28353fbe428adfc1bf6bbaae (patch) | |
| tree | 04f2da30b021880ea3c5ca1bac030fcd206c5c52 /Kernel/Sources/User.cxx | |
| parent | 80039963ff08d1810e22a0ae41497b156e861db0 (diff) | |
[FIX] [newoskrnl.dll] Fixed it's heap and improved it as well.
[FIX] Fix memory leak in TrySave. (\Kernel\Sources\User.cxx)
Signed-off-by: Amlal EL Mahrouss <amlalelmahrouss@icloud.com>
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; } |
