aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/compactbinary.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-04-18 12:44:26 +0200
committerGitHub Enterprise <[email protected]>2024-04-18 12:44:26 +0200
commit6d634ab59c05adf1ba028d95b16031a7f8e8db2a (patch)
tree87e8215fed65506f98f6838b2af08c4ffd5819f0 /src/zencore/compactbinary.cpp
parentzen startup hardening (#49) (diff)
downloadzen-6d634ab59c05adf1ba028d95b16031a7f8e8db2a.tar.xz
zen-6d634ab59c05adf1ba028d95b16031a7f8e8db2a.zip
improved lock file handling (#50)
- Feature: `zen down` - --`data-dir` to specify a data directory to deduce which zen instance to bring down - Feature: `zen attach` - --`data-dir` to specify a data directory to deduce which zen instance to attach to222 - Feature: `zen status` - --`port` filter running zen instances based on port - --`data-dir` filter running zen instances based on information in the data directory - Improvement: Trying to load a compact binary object from an empty file no longer causes access violation
Diffstat (limited to 'src/zencore/compactbinary.cpp')
-rw-r--r--src/zencore/compactbinary.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/zencore/compactbinary.cpp b/src/zencore/compactbinary.cpp
index 0907f8a2e..029889e85 100644
--- a/src/zencore/compactbinary.cpp
+++ b/src/zencore/compactbinary.cpp
@@ -1421,25 +1421,43 @@ LoadCompactBinary(BinaryReader& Ar, BufferAllocator Allocator)
CbObject
LoadCompactBinaryObject(IoBuffer&& Payload)
{
+ if (Payload.GetSize() == 0)
+ {
+ return CbObject();
+ }
return CbObject{SharedBuffer(std::move(Payload))};
}
CbObject
LoadCompactBinaryObject(const IoBuffer& Payload)
{
+ if (Payload.GetSize() == 0)
+ {
+ return CbObject();
+ }
return CbObject{SharedBuffer(Payload)};
}
CbObject
LoadCompactBinaryObject(CompressedBuffer&& Payload)
{
- return CbObject{SharedBuffer(Payload.DecompressToComposite().Flatten())};
+ CompositeBuffer Decompressed = std::move(Payload).DecompressToComposite();
+ if (Decompressed.GetSize() == 0)
+ {
+ return CbObject();
+ }
+ return CbObject{std::move(Decompressed).Flatten()};
}
CbObject
LoadCompactBinaryObject(const CompressedBuffer& Payload)
{
- return CbObject{SharedBuffer(Payload.DecompressToComposite().Flatten())};
+ CompositeBuffer Decompressed = Payload.DecompressToComposite();
+ if (Decompressed.GetSize() == 0)
+ {
+ return CbObject();
+ }
+ return CbObject{std::move(Decompressed).Flatten()};
}
//////////////////////////////////////////////////////////////////////////