From 3cc6ca215e5a9e32712f4e1c6b6f5da1d8092056 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Mon, 4 Nov 2019 18:29:49 -0600 Subject: [PATCH] [ox/fs] Fix Directory to allocate enough space for new entry --- deps/ox/src/ox/fs/filesystem/directory.hpp | 2 +- deps/ox/src/ox/fs/test/tests.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deps/ox/src/ox/fs/filesystem/directory.hpp b/deps/ox/src/ox/fs/filesystem/directory.hpp index 741ee28b..1e5d246f 100644 --- a/deps/ox/src/ox/fs/filesystem/directory.hpp +++ b/deps/ox/src/ox/fs/filesystem/directory.hpp @@ -236,7 +236,7 @@ ox::Error Directory::write(PathIterator path, InodeId_t in const auto entryDataSize = DirectoryEntry::DirectoryEntryData::spaceNeeded(name->len() + 1); const auto entrySize = DirectoryEntry::spaceNeeded(entryDataSize); - const auto newSize = Buffer::spaceNeeded(m_size + entrySize); + const auto newSize = old.size() + Buffer::spaceNeeded(m_size + entrySize); auto cpy = ox_malloca(newSize, Buffer, *old, oldStat.value.size); if (cpy == nullptr) { oxTrace("ox::fs::Directory::write::fail") << "Could not allocate memory for copy of Directory"; diff --git a/deps/ox/src/ox/fs/test/tests.cpp b/deps/ox/src/ox/fs/test/tests.cpp index 1efa5157..e5e4d6cc 100644 --- a/deps/ox/src/ox/fs/test/tests.cpp +++ b/deps/ox/src/ox/fs/test/tests.cpp @@ -185,10 +185,10 @@ map tests = { oxAssert(dir.find("file1").value == 1, "Could not find file1"); oxTrace("ox::fs::test::Directory") << "write 2"; - oxAssert(dir.write("/file3", 3) == 0, "Directory write of file3 failed"); + oxAssert(dir.write("/file3", 3), "Directory write of file3 failed"); oxTrace("ox::fs::test::Directory") << "write 3"; - oxAssert(dir.write("/file2", 2) == 0, "Directory write of file2 failed"); + oxAssert(dir.write("/file2", 2), "Directory write of file2 failed"); return 0; }