diff --git a/datastore/bolt/build.go b/datastore/bolt/build.go index 786294742..34c062924 100644 --- a/datastore/bolt/build.go +++ b/datastore/bolt/build.go @@ -3,11 +3,10 @@ package bolt import ( //"bytes" "encoding/binary" - "strconv" - "time" - "github.com/boltdb/bolt" "github.com/drone/drone/common" + "strconv" + "time" ) // Build gets the specified build number for the @@ -203,12 +202,13 @@ func (db *DB) SetBuildTask(repo string, build int, task *common.Task) error { if err != nil { return err } + // check index to prevent nil pointer / panic if task.Number > len(build_.Tasks) { return ErrKeyNotFound } build_.Updated = time.Now().UTC().Unix() //assuming task number is 1-based. - build_.Tasks[task.Number-1] = task // TODO check index to prevent nil pointer / panic + build_.Tasks[task.Number-1] = task return update(t, bucketBuild, key, build_) }) } diff --git a/datastore/bolt/build_test.go b/datastore/bolt/build_test.go index 35c6a6cb1..969a34cb7 100644 --- a/datastore/bolt/build_test.go +++ b/datastore/bolt/build_test.go @@ -107,10 +107,6 @@ func TestBuild(t *testing.T) { db.SetBuild(repo, &common.Build{State: "success"}) err_ := db.SetBuildTask(repo, 1, &common.Task{Number: 1}) g.Assert(err_).Equal(nil) - //err_ = db.SetBuildTask(repo, 1, &common.Task{Number: 2}) - //g.Assert(err_).Equal(nil) - //err_ = db.SetBuildTask(repo, 2, &common.Task{Number: 1}) - //g.Assert(err_).Equal(nil) }) }) } diff --git a/server/builds.go b/server/builds.go index 0586f50a5..9dd7bb6c6 100644 --- a/server/builds.go +++ b/server/builds.go @@ -89,8 +89,6 @@ func PostBuildStatus(c *gin.Context) { c.AbortWithStatus(400) return } - - //if err := store.SetStatus(repo.Name, num, in); err != nil { if err := store.SetBuildStatus(repo.Name, num, in); err != nil { c.Fail(400, err) } else {