diff options
| author | Dan Engelbrecht <[email protected]> | 2025-09-04 13:17:25 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-09-04 13:17:25 +0200 |
| commit | 9f575bd416e1f7afbd11d4b221074f34bb89605c (patch) | |
| tree | 07c87ccdbc01cdaf13015f46dddfaa71fa791d5b /src/zenserver/config.cpp | |
| parent | oplog memory usage reduction (#482) (diff) | |
| download | zen-9f575bd416e1f7afbd11d4b221074f34bb89605c.tar.xz zen-9f575bd416e1f7afbd11d4b221074f34bb89605c.zip | |
add validation of compact binary payloads before reading them (#483)
* add validation of compact binary payloads before reading them
Diffstat (limited to 'src/zenserver/config.cpp')
| -rw-r--r-- | src/zenserver/config.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/zenserver/config.cpp b/src/zenserver/config.cpp index fb2d9b7f4..0397677b9 100644 --- a/src/zenserver/config.cpp +++ b/src/zenserver/config.cpp @@ -7,6 +7,7 @@ #include <zencore/basicfile.h> #include <zencore/compactbinarybuilder.h> +#include <zencore/compactbinaryutil.h> #include <zencore/compactbinaryvalidation.h> #include <zencore/crypto.h> #include <zencore/except.h> @@ -72,13 +73,12 @@ ReadAllCentralManifests(const std::filesystem::path& SystemRoot) { try { - FileContents FileData = ReadFile(File); - IoBuffer DataBuffer = FileData.Flatten(); - CbValidateError ValidateError = ValidateCompactBinary(DataBuffer, CbValidateMode::All); - - if (ValidateError == CbValidateError::None) + FileContents FileData = ReadFile(File); + CbValidateError ValidateError; + if (CbObject Manifest = ValidateAndReadCompactBinaryObject(FileData.Flatten(), ValidateError); + ValidateError == CbValidateError::None) { - Manifests.push_back(LoadCompactBinaryObject(DataBuffer)); + Manifests.emplace_back(std::move(Manifest)); } else { |