diff options
author | Derek Murray <mrry@google.com> | 2016-12-15 14:00:21 -0800 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2016-12-15 14:07:36 -0800 |
commit | abd3190d329385776e92baaaaf605d3371010486 (patch) | |
tree | 186495213191921d8f0e78ae3bbedb213b1933fa /nanopb.BUILD | |
parent | 12954acc1df5514c8193bb104e044432e34e5e60 (diff) |
Fix use-after-free bug when closing a MasterSession.
A concurrent run call could continue to use a MasterSession that had
deleted itself (in `MasterSession::Close()`). Change `MasterSession`
to be an explicitly shared, refcounted object; and modify the `Master`
so that each call that uses a session will acquire a reference to that
session, then release it before calling the callback. Add a
`MasterSession::closed_` bit to ensure that no call uses a session
after `MasterSession::Close()` has succeeded.
Also fix a null-pointer access that could occur if a ReffedClientGraph
was partially constructed. If
`ReffedClientGraph::RegisterPartitions()` failed, some of the
`Part::worker` fields would be uninitialized, and
`ReffedClientGraph::DeregisterPartitions()` (called by the destructor)
would attempt to invoke a method on that object. Fix this by only
attempting to deregister partitions that have been successfully
registered.
Change: 142185174
Diffstat (limited to 'nanopb.BUILD')
0 files changed, 0 insertions, 0 deletions