schema1: Validate descriptors in AppendReference

If the digest is malformed, it will cause a panic when building the
manifest.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This commit is contained in:
Aaron Lehmann 2016-11-29 17:22:07 -08:00
parent bf27f260cd
commit ec5fa1f9d6

View File

@ -240,8 +240,13 @@ func (mb *configManifestBuilder) emptyTar(ctx context.Context) (digest.Digest, e
// AppendReference adds a reference to the current ManifestBuilder // AppendReference adds a reference to the current ManifestBuilder
func (mb *configManifestBuilder) AppendReference(d distribution.Describable) error { func (mb *configManifestBuilder) AppendReference(d distribution.Describable) error {
// todo: verification here? descriptor := d.Descriptor()
mb.descriptors = append(mb.descriptors, d.Descriptor())
if err := descriptor.Digest.Validate(); err != nil {
return err
}
mb.descriptors = append(mb.descriptors, descriptor)
return nil return nil
} }