mirror of
https://github.com/moby/moby.git
synced 2026-06-24 08:48:23 +00:00
Fix layer store Get locking
Get was calling getReference without layerL held. This meant writes to
the references map could race. Such races are dangerous because they can
corrupt the map and crash the process.
Fixes #21616
Fixes #21674
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
(cherry picked from commit 0538981c31)
This commit is contained in:
committed by
Tibor Vass
parent
deb08a1012
commit
2e92a84fa8
@@ -334,7 +334,10 @@ func (ls *layerStore) get(l ChainID) *roLayer {
|
||||
}
|
||||
|
||||
func (ls *layerStore) Get(l ChainID) (Layer, error) {
|
||||
layer := ls.get(l)
|
||||
ls.layerL.Lock()
|
||||
defer ls.layerL.Unlock()
|
||||
|
||||
layer := ls.getWithoutLock(l)
|
||||
if layer == nil {
|
||||
return nil, ErrLayerDoesNotExist
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user