From e12d7cca4238d74474c4494c2cd00f4f49c95c9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mickae=CC=88l=20Menu?= Date: Sat, 13 Feb 2021 21:07:06 +0100 Subject: [PATCH] Prevent recursive aliases --- main.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 00df93a..166d4fe 100644 --- a/main.go +++ b/main.go @@ -106,12 +106,16 @@ func indexZk(container *cmd.Container) { // runAlias will execute a user alias if the command is one of them. 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 { for alias, cmdStr := range zk.Config.Aliases { - if alias != args[0] { + if alias == runningAlias || alias != args[0] { continue } + // Prevent infinite loop if an alias calls itself. + os.Setenv("ZK_RUNNING_ALIAS", alias) + cmd := executil.CommandFromString(cmdStr, args[1:]...) cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout