From: Junio C Hamano Date: Wed, 19 Feb 2014 23:48:52 GMT Subject: Re: [PATCH v3 02/25] Convert git_snpath() to strbuf_git_path() Message-ID: In-Reply-To: <1392730814-19656-3-git-send-email-pclouds@gmail.com> Nguyễn Thái Ngọc Duy writes: > @@ -651,14 +653,10 @@ static void update_refs_for_switch(const struct checkout_opts *opts, > new->name); > } > } > - if (old->path && old->name) { > - char log_file[PATH_MAX], ref_file[PATH_MAX]; > - > - git_snpath(log_file, sizeof(log_file), "logs/%s", old->path); > - git_snpath(ref_file, sizeof(ref_file), "%s", old->path); > - if (!file_exists(ref_file) && file_exists(log_file)) > - remove_path(log_file); > - } > + if (old->path && old->name && > + !file_exists(git_path("%s", old->path)) && > + file_exists(git_path("logs/%s", old->path))) > + remove_path(git_path("logs/%s", old->path)); Hmph. Is this conversion safe? This adds three uses of the round-robin path buffer; if a caller of this function used two or more path buffers obtained from get_pathname() and expected their contents to remain stable across the call to this, it will silently break.