releaser: Git info bounds checking
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 11 Jan 2018 08:39:42 +0000 (09:39 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 11 Jan 2018 08:39:42 +0000 (09:39 +0100)
releaser/git.go

index 8d8bbd68de2c99aa2496f9512b9f81387d63eff0..9999636fee37c0e2599dd0e169945aaf2ed8b841 100644 (file)
@@ -227,13 +227,22 @@ func getGitInfosBefore(ref, tag, repo, repoPath string, remote bool) (gitInfos,
 
        for _, entry := range entries {
                items := strings.Split(entry, "\x1f")
-               gi := gitInfo{
-                       Hash:    items[0],
-                       Author:  items[1],
-                       Subject: items[2],
-                       Body:    items[3],
+               gi := gitInfo{}
+
+               if len(items) > 0 {
+                       gi.Hash = items[0]
+               }
+               if len(items) > 1 {
+                       gi.Author = items[1]
+               }
+               if len(items) > 2 {
+                       gi.Subject = items[2]
                }
-               if remote {
+               if len(items) > 3 {
+                       gi.Body = items[3]
+               }
+
+               if remote && gi.Hash != "" {
                        gc, err := client.fetchCommit(gi.Hash)
                        if err == nil {
                                gi.GitHubCommit = &gc