You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ab...@apache.org on 2019/04/05 12:21:52 UTC
[mesos] branch master updated: Fixed use-after-free bug in Docker
provisioner store.
This is an automated email from the ASF dual-hosted git repository.
abudnik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
The following commit(s) were added to refs/heads/master by this push:
new db917f6 Fixed use-after-free bug in Docker provisioner store.
db917f6 is described below
commit db917f639e2d05fcf493e87649f42ddd2abfeae0
Author: Andrei Budnik <ab...@mesosphere.com>
AuthorDate: Fri Apr 5 13:06:49 2019 +0200
Fixed use-after-free bug in Docker provisioner store.
Deferred lambda callback of the `moveLayers()` to the `StoreProcess`
to prevent use-after-free of the process object since the callback
refers to the `StoreProcess` class variable `flags`.
Review: https://reviews.apache.org/r/70405
---
src/slave/containerizer/mesos/provisioner/docker/store.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/slave/containerizer/mesos/provisioner/docker/store.cpp b/src/slave/containerizer/mesos/provisioner/docker/store.cpp
index 909364d..36b2c7d 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/store.cpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/store.cpp
@@ -446,7 +446,7 @@ Future<Image> StoreProcess::moveLayers(
}
return collect(futures)
- .then([=]() -> Future<Image> {
+ .then(defer(self(), [=]() -> Future<Image> {
if (image.has_config_digest()) {
const string configSource = path::join(staging, image.config_digest());
const string configTarget = paths::getImageLayerPath(
@@ -464,7 +464,7 @@ Future<Image> StoreProcess::moveLayers(
}
return image;
- });
+ }));
}