diff --git a/cyclonedx.go b/cyclonedx.go index cca1f62..50d23cf 100644 --- a/cyclonedx.go +++ b/cyclonedx.go @@ -19,6 +19,7 @@ package cyclonedx import ( "encoding/xml" + "errors" "fmt" "regexp" ) @@ -29,6 +30,8 @@ const ( BOMFormat = "CycloneDX" ) +var ErrInvalidSpecVersion = errors.New("invalid specification version") + type Advisory struct { Title string `json:"title,omitempty" xml:"title,omitempty"` URL string `json:"url" xml:"url"` diff --git a/cyclonedx_json.go b/cyclonedx_json.go index 013578f..3d3e71f 100644 --- a/cyclonedx_json.go +++ b/cyclonedx_json.go @@ -17,7 +17,9 @@ package cyclonedx -import "encoding/json" +import ( + "encoding/json" +) func (sv SpecVersion) MarshalJSON() ([]byte, error) { return json.Marshal(sv.String()) @@ -41,6 +43,8 @@ func (sv *SpecVersion) UnmarshalJSON(bytes []byte) error { *sv = SpecVersion1_3 case SpecVersion1_4.String(): *sv = SpecVersion1_4 + default: + return ErrInvalidSpecVersion } return nil diff --git a/cyclonedx_xml.go b/cyclonedx_xml.go index 655e1bd..6431094 100644 --- a/cyclonedx_xml.go +++ b/cyclonedx_xml.go @@ -183,6 +183,8 @@ func (sv *SpecVersion) UnmarshalXML(d *xml.Decoder, start xml.StartElement) erro *sv = SpecVersion1_3 case SpecVersion1_4.String(): *sv = SpecVersion1_4 + default: + return ErrInvalidSpecVersion } return nil