aboutsummaryrefslogtreecommitdiff
path: root/tvloader/parser2v2/parse_creation_info.go
diff options
context:
space:
mode:
Diffstat (limited to 'tvloader/parser2v2/parse_creation_info.go')
-rw-r--r--tvloader/parser2v2/parse_creation_info.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/tvloader/parser2v2/parse_creation_info.go b/tvloader/parser2v2/parse_creation_info.go
index a3c7fbf..c2bfe40 100644
--- a/tvloader/parser2v2/parse_creation_info.go
+++ b/tvloader/parser2v2/parse_creation_info.go
@@ -12,7 +12,7 @@ import (
func (parser *tvParser2_2) parsePairFromCreationInfo2_2(tag string, value string) error {
// fail if not in Creation Info parser state
if parser.st != psCreationInfo2_2 {
- return fmt.Errorf("Got invalid state %v in parsePairFromCreationInfo2_2", parser.st)
+ return fmt.Errorf("got invalid state %v in parsePairFromCreationInfo2_2", parser.st)
}
// create an SPDX Creation Info data struct if we don't have one already
@@ -76,6 +76,13 @@ func (parser *tvParser2_2) parsePairFromCreationInfo2_2(tag string, value string
// tag for going on to package section
case "PackageName":
+ // error if last file does not have an identifier
+ // this may be a null case: can we ever have a "last file" in
+ // the "creation info" state? should go on to "file" state
+ // even when parsing unpackaged files.
+ if parser.file != nil && parser.file.FileSPDXIdentifier == nullSpdxElementId2_2 {
+ return fmt.Errorf("file with FileName %s does not have SPDX identifier", parser.file.FileName)
+ }
parser.st = psPackage2_2
parser.pkg = &spdx.Package2_2{
FilesAnalyzed: true,