func Validate in digest doesn't filter no-hex data

This commit is contained in:
xiekeyang 2015-03-04 16:02:50 +08:00
parent 91403c1b52
commit 04e6cc37fa

View file

@ -47,7 +47,7 @@ func NewDigestFromHex(alg, hex string) Digest {
}
// DigestRegexp matches valid digest types.
var DigestRegexp = regexp.MustCompile(`[a-zA-Z0-9-_+.]+:[a-zA-Z0-9-_+.=]+`)
var DigestRegexp = regexp.MustCompile(`[a-zA-Z0-9-_+.]+:[a-fA-F0-9-_+.=]+$`)
var (
// ErrDigestInvalidFormat returned when digest format invalid.
@ -112,6 +112,10 @@ func (d Digest) Validate() error {
// Continue on for general parser
if !DigestRegexp.MatchString(s) {
return ErrDigestInvalidFormat
}
i := strings.Index(s, ":")
if i < 0 {
return ErrDigestInvalidFormat