Prevent recursive aliases

pull/6/head
Mickaël Menu 3 years ago
parent 9f0b5dc7d4
commit e12d7cca42
No known key found for this signature in database
GPG Key ID: 53D73664CD359895

@ -106,12 +106,16 @@ func indexZk(container *cmd.Container) {
// runAlias will execute a user alias if the command is one of them. // runAlias will execute a user alias if the command is one of them.
func runAlias(container *cmd.Container, args []string) (bool, error) { func runAlias(container *cmd.Container, args []string) (bool, error) {
runningAlias := os.Getenv("ZK_RUNNING_ALIAS")
if zk, err := container.OpenZk(); err == nil && len(args) >= 1 { if zk, err := container.OpenZk(); err == nil && len(args) >= 1 {
for alias, cmdStr := range zk.Config.Aliases { for alias, cmdStr := range zk.Config.Aliases {
if alias != args[0] { if alias == runningAlias || alias != args[0] {
continue continue
} }
// Prevent infinite loop if an alias calls itself.
os.Setenv("ZK_RUNNING_ALIAS", alias)
cmd := executil.CommandFromString(cmdStr, args[1:]...) cmd := executil.CommandFromString(cmdStr, args[1:]...)
cmd.Stdin = os.Stdin cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout cmd.Stdout = os.Stdout

Loading…
Cancel
Save