Browse Source

Merge pull request #17113 from mountkin/validate-filter

make sure the value of the dangling filter is correct
David Calavera 9 years ago
parent
commit
c3f42b29a8
2 changed files with 10 additions and 1 deletions
  1. 3 1
      graph/list.go
  2. 7 0
      integration-cli/docker_cli_images_test.go

+ 3 - 1
graph/list.go

@@ -51,8 +51,10 @@ func (s *TagStore) Images(filterArgs, filter string, all bool) ([]*types.Image,
 
 	if i, ok := imageFilters["dangling"]; ok {
 		for _, value := range i {
-			if strings.ToLower(value) == "true" {
+			if v := strings.ToLower(value); v == "true" {
 				filtTagged = false
+			} else if v != "false" {
+				return nil, fmt.Errorf("Invalid filter 'dangling=%s'", v)
 			}
 		}
 	}

+ 7 - 0
integration-cli/docker_cli_images_test.go

@@ -7,6 +7,7 @@ import (
 	"strings"
 	"time"
 
+	"github.com/docker/docker/pkg/integration/checker"
 	"github.com/docker/docker/pkg/stringid"
 	"github.com/go-check/check"
 )
@@ -197,3 +198,9 @@ func (s *DockerSuite) TestImagesEnsureDanglingImageOnlyListedOnce(c *check.C) {
 		c.Fatalf("expected 1 dangling image, got %d: %s", a, out)
 	}
 }
+
+func (s *DockerSuite) TestImagesWithIncorrectFilter(c *check.C) {
+	out, _, err := dockerCmdWithError("images", "-f", "dangling=invalid")
+	c.Assert(err, check.NotNil)
+	c.Assert(out, checker.Contains, "Invalid filter")
+}