fix: panic when executing action with no arguments
This commit is contained in:
parent
a8f5e25454
commit
a4e50bfb54
|
|
@ -88,24 +88,16 @@ func LoadUserSessions(cfg *config.Config) {
|
||||||
data, err := os.ReadFile(cfg.GetDir() + "/sessions.yaml")
|
data, err := os.ReadFile(cfg.GetDir() + "/sessions.yaml")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.WithError(err).Warn("Failed to read sessions.yaml file")
|
logrus.WithError(err).Warn("Failed to read sessions.yaml file")
|
||||||
// Initialize empty session storage if file doesn't exist
|
// Always reset in-memory sessions on load error
|
||||||
if sessionStorage == nil {
|
sessionStorage = &SessionStorage{Providers: make(map[string]*SessionProvider)}
|
||||||
sessionStorage = &SessionStorage{
|
|
||||||
Providers: make(map[string]*SessionProvider),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = yaml.Unmarshal(data, &sessionStorage)
|
err = yaml.Unmarshal(data, &sessionStorage)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.WithError(err).Error("Failed to unmarshal sessions.yaml")
|
logrus.WithError(err).Error("Failed to unmarshal sessions.yaml")
|
||||||
// Initialize empty session storage if unmarshal fails
|
// Always reset in-memory sessions on parse error
|
||||||
if sessionStorage == nil {
|
sessionStorage = &SessionStorage{Providers: make(map[string]*SessionProvider)}
|
||||||
sessionStorage = &SessionStorage{
|
|
||||||
Providers: make(map[string]*SessionProvider),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -436,8 +436,6 @@ func stepParseArgs(req *ExecutionRequest) bool {
|
||||||
req.Arguments["ot_executionTrackingId"] = req.TrackingID
|
req.Arguments["ot_executionTrackingId"] = req.TrackingID
|
||||||
req.Arguments["ot_username"] = req.AuthenticatedUser.Username
|
req.Arguments["ot_username"] = req.AuthenticatedUser.Username
|
||||||
|
|
||||||
mangleInvalidArgumentValues(req)
|
|
||||||
|
|
||||||
if req.Binding == nil || req.Binding.Action == nil {
|
if req.Binding == nil || req.Binding.Action == nil {
|
||||||
err = fmt.Errorf("cannot parse arguments: Binding or Action is nil")
|
err = fmt.Errorf("cannot parse arguments: Binding or Action is nil")
|
||||||
req.logEntry.Output = err.Error()
|
req.logEntry.Output = err.Error()
|
||||||
|
|
@ -445,6 +443,9 @@ func stepParseArgs(req *ExecutionRequest) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Only mangle arguments when we have a valid binding/action
|
||||||
|
mangleInvalidArgumentValues(req)
|
||||||
|
|
||||||
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)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue