From 6bdaf6ad6e1308aae12845b20bf06a4406ba0c03 Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Tue, 19 Aug 2025 14:03:02 +0200 Subject: zen print fixes/improvements (#469) - Improvement: `zen print` now allows output of compact binary content even if they are in non-optimal format (Unifom vs Non-Uniform arrays and objects) - Feature: `zen print` now has a `--show-type-info` option to add type information to output of compact binary content - Bugfix: Stats information for Build Store (Zen Store Cache) no longer throws exception and outputs invalid state information --- src/zencore/compactbinaryfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/zencore/compactbinaryfile.cpp') diff --git a/src/zencore/compactbinaryfile.cpp b/src/zencore/compactbinaryfile.cpp index f2121a0bd..1526c21d5 100644 --- a/src/zencore/compactbinaryfile.cpp +++ b/src/zencore/compactbinaryfile.cpp @@ -19,7 +19,7 @@ LoadCompactBinaryObject(const std::filesystem::path& FilePath) IoBuffer ObjectBuffer = ObjectFile.Flatten(); - if (CbValidateError Result = ValidateCompactBinary(ObjectBuffer, CbValidateMode::All); Result == CbValidateError::None) + if (CbValidateError Result = ValidateCompactBinary(ObjectBuffer, CbValidateMode::Default); Result == CbValidateError::None) { CbObject Object = LoadCompactBinaryObject(ObjectBuffer); const IoHash WorkerId = IoHash::HashBuffer(ObjectBuffer); -- cgit v1.2.3 From 9f575bd416e1f7afbd11d4b221074f34bb89605c Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Thu, 4 Sep 2025 13:17:25 +0200 Subject: add validation of compact binary payloads before reading them (#483) * add validation of compact binary payloads before reading them --- src/zencore/compactbinaryfile.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/zencore/compactbinaryfile.cpp') diff --git a/src/zencore/compactbinaryfile.cpp b/src/zencore/compactbinaryfile.cpp index 1526c21d5..ec2fc3cd5 100644 --- a/src/zencore/compactbinaryfile.cpp +++ b/src/zencore/compactbinaryfile.cpp @@ -1,7 +1,7 @@ // Copyright Epic Games, Inc. All Rights Reserved. #include "zencore/compactbinaryfile.h" -#include "zencore/compactbinaryvalidation.h" +#include "zencore/compactbinaryutil.h" #include @@ -19,12 +19,12 @@ LoadCompactBinaryObject(const std::filesystem::path& FilePath) IoBuffer ObjectBuffer = ObjectFile.Flatten(); - if (CbValidateError Result = ValidateCompactBinary(ObjectBuffer, CbValidateMode::Default); Result == CbValidateError::None) + CbValidateError ValidateResult; + CbObject Object = ValidateAndReadCompactBinaryObject(IoBuffer(ObjectBuffer), ValidateResult); + if (ValidateResult == CbValidateError::None) { - CbObject Object = LoadCompactBinaryObject(ObjectBuffer); const IoHash WorkerId = IoHash::HashBuffer(ObjectBuffer); - - return {.Object = Object, .Hash = WorkerId}; + return {.Object = std::move(Object), .Hash = WorkerId}; } return {.Hash = IoHash::Zero}; -- cgit v1.2.3