summaryrefslogtreecommitdiffhomepage
path: root/Kernel/Sources/User.cxx
diff options
context:
space:
mode:
authorAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-08-10 10:35:44 +0200
committerAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-08-10 10:35:44 +0200
commit192892221333113b28353fbe428adfc1bf6bbaae (patch)
tree04f2da30b021880ea3c5ca1bac030fcd206c5c52 /Kernel/Sources/User.cxx
parent80039963ff08d1810e22a0ae41497b156e861db0 (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.cxx15
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;
}