Fix potential log panic (#82)

If a job uses a [reusable workflow](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-of-jobsjob_iduses), the job's steps sequence will be empty.

But in log reporter, we don't check the length of `r.state.Steps`, which may cause panic.

``` go
if v, ok := entry.Data["stepNumber"]; ok {
	if v, ok := v.(int); ok {
		step = r.state.Steps[v]
	}
}
```

Reviewed-on: https://gitea.com/gitea/act_runner/pulls/82
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: Zettat123 <zettat123@gmail.com>
Co-committed-by: Zettat123 <zettat123@gmail.com>
This commit is contained in:
Zettat123 2023-03-28 11:49:09 +08:00 committed by Jason Song
parent c9e076db68
commit 1596e4b1fd

View file

@ -102,7 +102,7 @@ func (r *Reporter) Fire(entry *log.Entry) error {
var step *runnerv1.StepState var step *runnerv1.StepState
if v, ok := entry.Data["stepNumber"]; ok { if v, ok := entry.Data["stepNumber"]; ok {
if v, ok := v.(int); ok { if v, ok := v.(int); ok && len(r.state.Steps) > v {
step = r.state.Steps[v] step = r.state.Steps[v]
} }
} }