From: Alex Kuleshov Date: Sun, 23 Nov 2014 19:19:29 GMT Subject: Re: [PATCH] exec_cmd: system_path memory leak fix Message-ID: <87sih9en65.fsf@gmail.com> In-Reply-To: Signed-off-by: Alex Kuleshov --- exec_cmd.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/exec_cmd.c b/exec_cmd.c index 698e752..7ed9bcc 100644 --- a/exec_cmd.c +++ b/exec_cmd.c @@ -13,7 +13,7 @@ const char *system_path(const char *path) #else static const char *prefix = PREFIX; #endif - struct strbuf d = STRBUF_INIT; + static struct strbuf d = STRBUF_INIT; if (is_absolute_path(path)) return path; @@ -34,8 +34,7 @@ const char *system_path(const char *path) #endif strbuf_addf(&d, "%s/%s", prefix, path); - path = strbuf_detach(&d, NULL); - return path; + return d.buf; } const char *git_extract_argv0_path(const char *argv0) @@ -94,7 +93,7 @@ static void add_path(struct strbuf *out, const char *path) void setup_path(void) { const char *old_path = getenv("PATH"); - struct strbuf new_path = STRBUF_INIT; + static struct strbuf new_path = STRBUF_INIT; add_path(&new_path, git_exec_path()); add_path(&new_path, argv0_path); -- 2.2.0.rc3.190.g952f0aa.dirty