diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-05-27 15:02:40 +0200 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-05-28 16:19:19 +0200 |
commit | b91f39d2429704859e799bff2554fc40636438f9 (patch) | |
tree | 56e99360beb384bba6107b7c8a477727a536eb51 | |
parent | a8cbdab9f795999cf99458e63343e13322402739 (diff) | |
download | justbuild-b91f39d2429704859e799bff2554fc40636438f9.tar.gz |
Copy digest before emplacing in BlobContainer
...fixing potentially dangerous code (evaluation order is unspecified).
-rw-r--r-- | src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp b/src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp index 2e028d05..41f30ddd 100644 --- a/src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp +++ b/src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp @@ -230,13 +230,14 @@ class BlobContainer { explicit BlobContainer(std::vector<BazelBlob> blobs) { blobs_.reserve(blobs.size()); for (auto& blob : blobs) { - blobs_.emplace(blob.digest, std::move(blob)); + this->Emplace(std::move(blob)); } } /// \brief Emplace new BazelBlob to container. void Emplace(BazelBlob&& blob) { - blobs_.emplace(blob.digest, std::move(blob)); + bazel_re::Digest digest = blob.digest; + blobs_.emplace(std::move(digest), std::move(blob)); } /// \brief Clear all BazelBlobs from container. |