bugfix: Added nil checks

This commit is contained in:
jamesread 2025-10-26 17:32:26 +00:00
parent c917d1b1e7
commit c86bf629f9
2 changed files with 17 additions and 0 deletions

View File

@ -43,6 +43,10 @@ func parseCommandForReplacements(shellCommand string, values map[string]string,
} }
func parseActionExec(values map[string]string, action *config.Action, entity *entities.Entity) ([]string, error) { func parseActionExec(values map[string]string, action *config.Action, entity *entities.Entity) ([]string, error) {
if action == nil {
return nil, fmt.Errorf("action is nil")
}
for _, arg := range action.Arguments { for _, arg := range action.Arguments {
argName := arg.Name argName := arg.Name
argValue := values[argName] argValue := values[argName]

View File

@ -435,6 +435,13 @@ func stepParseArgs(req *ExecutionRequest) bool {
mangleInvalidArgumentValues(req) mangleInvalidArgumentValues(req)
if req.Binding == nil || req.Binding.Action == nil {
err = fmt.Errorf("cannot parse arguments: Binding or Action is nil")
req.logEntry.Output = err.Error()
log.Warn(err.Error())
return false
}
if len(req.Binding.Action.Exec) > 0 { if len(req.Binding.Action.Exec) > 0 {
req.useDirectExec = true req.useDirectExec = true
req.execArgs, err = parseActionExec(req.Arguments, req.Binding.Action, req.Binding.Entity) req.execArgs, err = parseActionExec(req.Arguments, req.Binding.Action, req.Binding.Entity)
@ -585,6 +592,12 @@ func stepExec(req *ExecutionRequest) bool {
cmd = wrapCommandInShell(ctx, req.finalParsedCommand) cmd = wrapCommandInShell(ctx, req.finalParsedCommand)
} }
if cmd == nil {
req.logEntry.Output = "Cannot execute: no command arguments provided"
log.Warn("Cannot execute: no command arguments provided")
return false
}
cmd.Stdout = streamer cmd.Stdout = streamer
cmd.Stderr = streamer cmd.Stderr = streamer
cmd.Env = buildEnv(req.Arguments) cmd.Env = buildEnv(req.Arguments)