Преглед изворни кода

Check for non-nil container after match

There can be a race between getting the container ids for matches and
getting the actual container.  This makes sure that we check that the
container returned by `Get` is non-nil before adding it to the list of
matches.

Fixes #25991

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
(cherry picked from commit a020ec4c8b476a814eb137e216fe9d723524fc3b)
Signed-off-by: Victor Vieux <vieux@docker.com>
Michael Crosby пре 9 година
родитељ
комит
aaaeb84ac6
1 измењених фајлова са 3 додато и 1 уклоњено
  1. 3 1
      daemon/list.go

+ 3 - 1
daemon/list.go

@@ -157,7 +157,9 @@ func (daemon *Daemon) filterByNameIDMatches(ctx *listContext) []*container.Conta
 
 	cntrs := make([]*container.Container, 0, len(matches))
 	for id := range matches {
-		cntrs = append(cntrs, daemon.containers.Get(id))
+		if c := daemon.containers.Get(id); c != nil {
+			cntrs = append(cntrs, c)
+		}
 	}
 
 	// Restore sort-order after filtering