Skip to content

Commit 90254bd

Browse files
committed
Fix combining zero-sized files
Fixes #182 Signed-off-by: Vadim Markovtsev <vadim@sourced.tech>
1 parent d806059 commit 90254bd

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

cmd/hercules/combine.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,16 @@ var combineCmd = &cobra.Command{
7373

7474
func loadMessage(fileName string, repos *[]string) (
7575
map[string]interface{}, *hercules.CommonAnalysisResult, []string) {
76-
errs := []string{}
76+
var errs []string
77+
fi, err := os.Stat(fileName)
78+
if err != nil {
79+
errs = append(errs, "Cannot access "+fileName+": "+err.Error())
80+
return nil, nil, errs
81+
}
82+
if fi.Size() == 0 {
83+
errs = append(errs, "Cannot parse "+fileName+": file size is 0")
84+
return nil, nil, errs
85+
}
7786
buffer, err := ioutil.ReadFile(fileName)
7887
if err != nil {
7988
errs = append(errs, "Cannot read "+fileName+": "+err.Error())
@@ -85,6 +94,10 @@ func loadMessage(fileName string, repos *[]string) (
8594
errs = append(errs, "Cannot parse "+fileName+": "+err.Error())
8695
return nil, nil, errs
8796
}
97+
if message.Header == nil {
98+
errs = append(errs, "Cannot parse "+fileName+": corrupted header")
99+
return nil, nil, errs
100+
}
88101
*repos = append(*repos, message.Header.Repository)
89102
results := map[string]interface{}{}
90103
for key, val := range message.Contents {

0 commit comments

Comments
 (0)