[ox/fs] Fix Directory to allocate enough space for new entry
This commit is contained in:
parent
561cf9e2b4
commit
3cc6ca215e
2
deps/ox/src/ox/fs/filesystem/directory.hpp
vendored
2
deps/ox/src/ox/fs/filesystem/directory.hpp
vendored
@ -236,7 +236,7 @@ ox::Error Directory<FileStore, InodeId_t>::write(PathIterator path, InodeId_t in
|
||||
|
||||
const auto entryDataSize = DirectoryEntry<InodeId_t>::DirectoryEntryData::spaceNeeded(name->len() + 1);
|
||||
const auto entrySize = DirectoryEntry<InodeId_t>::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";
|
||||
|
4
deps/ox/src/ox/fs/test/tests.cpp
vendored
4
deps/ox/src/ox/fs/test/tests.cpp
vendored
@ -185,10 +185,10 @@ map<string, int(*)(string)> 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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user