From: Michael J Gruber Date: Tue, 26 Jan 2016 14:39:09 GMT Subject: Re: [PATCH] git.c: fix help.autocorrect after 57ea712 breaks it Message-ID: <56A7850D.6060805@drmicha.warpmail.net> In-Reply-To: <1453814801-1925-1-git-send-email-pclouds@gmail.com> Nguyễn Thái Ngọc Duy venit, vidit, dixit 26.01.2016 14:26: > Commit 57ea712 (git.c: make sure we do not leak GIT_* to alias scripts - > 2015-12-20) does not realize that handle_alias() can be called multiple > times because of the forever loop in run_argv(). The commit breaks alias > chains. > > Suppose you have an alias "abc" that resolves to another alias "def", > which finally resolve to "git status". handle_alias() is called twice. > save_env() and restore_env() are also called twice. But because of the > check save_env_before_alias in save_env(), we save once while trying to > restore twice. Consequences are left for the reader's imagination. > > Fortunately, you cannot make an alias of another alias. At least not > yet. Unfortunately it can still happen with help.autocorrect, where your > alias typo is treated as the first "alias", and it can be resolved to > the second alias. Then boom. > > Make sure we call save_env() and restore_env() in pairs. While at there, > set orig_cwd to NULL after freeing it for hygiene. > > Reported-by: Michael J Gruber > Signed-off-by: Nguyễn Thái Ngọc Duy > --- The patch fixes it for me, thanks! Michael