diff --git a/components/engine/image/image.go b/components/engine/image/image.go index e86ed2ff3f..4e37ebc42d 100644 --- a/components/engine/image/image.go +++ b/components/engine/image/image.go @@ -19,6 +19,8 @@ import ( // For more information see: http://sourceforge.net/p/aufs/aufs3-standalone/ci/aufs3.12/tree/config.mk const MaxImageDepth = 127 +var validHex = regexp.MustCompile(`^([a-f0-9]{64})$`) + type Image struct { ID string `json:"id"` Parent string `json:"parent,omitempty"` @@ -266,7 +268,6 @@ func NewImgJSON(src []byte) (*Image, error) { // Check wheather id is a valid image ID or not func ValidateID(id string) error { - validHex := regexp.MustCompile(`^([a-f0-9]{64})$`) if ok := validHex.MatchString(id); !ok { return fmt.Errorf("image ID '%s' is invalid", id) } diff --git a/components/engine/pkg/stringid/stringid.go b/components/engine/pkg/stringid/stringid.go index 3e6ff2a921..6a683b686a 100644 --- a/components/engine/pkg/stringid/stringid.go +++ b/components/engine/pkg/stringid/stringid.go @@ -10,9 +10,11 @@ import ( const shortLen = 12 +var validShortID = regexp.MustCompile("^[a-z0-9]{12}$") + // Determine if an arbitrary string *looks like* a short ID. func IsShortID(id string) bool { - return regexp.MustCompile("^[a-z0-9]{12}$").MatchString(id) + return validShortID.MatchString(id) } // TruncateID returns a shorthand version of a string identifier for convenience.