Skip to content

Commit 38f4d9f

Browse files
committed
bugfix:fix limactl panic because of invalid digest
Signed-off-by: ningmingxiao <[email protected]>
1 parent c1b8496 commit 38f4d9f

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

pkg/limayaml/validate.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -425,9 +425,6 @@ func validateFileObject(f File, fieldName string) error {
425425
errs = errors.Join(errs, fmt.Errorf("field `arch` must be one of %v; got %q", ArchTypes, f.Arch))
426426
}
427427
if f.Digest != "" {
428-
if !f.Digest.Algorithm().Available() {
429-
errs = errors.Join(errs, fmt.Errorf("field `%s.digest` refers to an unavailable digest algorithm", fieldName))
430-
}
431428
if err := f.Digest.Validate(); err != nil {
432429
errs = errors.Join(errs, fmt.Errorf("field `%s.digest` is invalid: %s: %w", fieldName, f.Digest.String(), err))
433430
}

pkg/limayaml/validate_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,21 @@ func TestValidateMinimumLimaVersion(t *testing.T) {
7373
}
7474
}
7575

76+
func TestValidateDigest(t *testing.T) {
77+
images := `images: [{"location": "/",digest: "69f31d3208895e5f646e345fbc95190e5e311ecd1359a4d6ee2c0b6483ceca03"}]`
78+
validProbe := `probes: [{"script": "#!foo"}]`
79+
y, err := Load([]byte(validProbe+"\n"+images), "lima.yaml")
80+
assert.NilError(t, err)
81+
err = Validate(y, false)
82+
assert.Error(t, err, "field `images[0].digest` is invalid: 69f31d3208895e5f646e345fbc95190e5e311ecd1359a4d6ee2c0b6483ceca03: invalid checksum digest format")
83+
84+
images2 := `images: [{"location": "/",digest: "sha001:69f31d3208895e5f646e345fbc95190e5e311ecd1359a4d6ee2c0b6483ceca03"}]`
85+
y2, err := Load([]byte(validProbe+"\n"+images2), "lima.yaml")
86+
assert.NilError(t, err)
87+
err = Validate(y2, false)
88+
assert.Error(t, err, "field `images[0].digest` is invalid: sha001:69f31d3208895e5f646e345fbc95190e5e311ecd1359a4d6ee2c0b6483ceca03: unsupported digest algorithm")
89+
}
90+
7691
func TestValidateProbes(t *testing.T) {
7792
images := `images: [{"location": "/"}]`
7893
validProbe := `probes: [{"script": "#!foo"}]`

0 commit comments

Comments
 (0)