Skip to content

Commit 4d9b881

Browse files
authored
Merge pull request #53 from klihub/fixes/handle-empty-spec-gracefully
pkg/cdi: handle unmarshalling empty Spec data.
2 parents e545712 + 1b56e88 commit 4d9b881

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

pkg/cdi/spec.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ func ReadSpec(path string, priority int) (*Spec, error) {
6868
if err != nil {
6969
return nil, errors.Wrapf(err, "failed to parse CDI Spec %q", path)
7070
}
71+
if raw == nil {
72+
return nil, errors.Errorf("failed to parse CDI Spec %q, no Spec data", path)
73+
}
7174

7275
return NewSpec(raw, path, priority)
7376
}
@@ -170,7 +173,7 @@ func validateVersion(version string) error {
170173

171174
// Parse raw CDI Spec file data.
172175
func parseSpec(data []byte) (*cdi.Spec, error) {
173-
raw := &cdi.Spec{}
176+
var raw *cdi.Spec
174177
err := yaml.UnmarshalStrict(data, &raw)
175178
if err != nil {
176179
return nil, errors.Wrap(err, "failed to unmarshal CDI Spec")

pkg/cdi/spec_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ devices:
5454
`,
5555
invalid: true,
5656
},
57+
{
58+
name: "empty",
59+
data: "",
60+
unparsable: true,
61+
},
5762
{
5863
name: "valid",
5964
data: `

0 commit comments

Comments
 (0)