All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] submodule.c: duplicate real_path's return value
@ 2013-04-23 11:00 Nguyễn Thái Ngọc Duy
  0 siblings, 0 replies; only message in thread
From: Nguyễn Thái Ngọc Duy @ 2013-04-23 11:00 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Jens Lehmann,
	Nguyễn Thái Ngọc Duy

real_path returns the pointer to an internal buffer, which may be
overwritten by the next real_path call. Duplicate the return value for
safety.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 Apply on top of jl/submodule-mv.
 
 Junio, I think this is the reason some tests failed when you merged
 nd/magic-pathspecs in (I suspect you needed to do parse_pathspec
 call, which may do real_path internaly).

 I think "bug" fix like this should go in early, hence this patch. I'm
 going to rebase nd/magic-pathspecs after this series graduates to
 master anyway, feel free to reject.

 submodule.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/submodule.c b/submodule.c
index 6b01a02..9f442d8 100644
--- a/submodule.c
+++ b/submodule.c
@@ -1102,7 +1102,8 @@ void connect_work_tree_and_git_dir(const char *work_tree, const char *git_dir)
 	struct strbuf configfile_name = STRBUF_INIT;
 	struct strbuf gitfile_content = STRBUF_INIT;
 	struct strbuf gitfile_name = STRBUF_INIT;
-	const char *real_work_tree = real_path(work_tree);
+	char *real_work_tree = xstrdup(real_path(work_tree));
+	char *to_free = real_work_tree;
 	const char *pathspec[] = { real_work_tree, git_dir, NULL };
 	const char *max_prefix = common_prefix(pathspec);
 	FILE *fp;
@@ -1157,4 +1158,5 @@ void connect_work_tree_and_git_dir(const char *work_tree, const char *git_dir)
 
 	strbuf_release(&core_worktree_setting);
 	strbuf_release(&configfile_name);
+	free(to_free);
 }
-- 
1.8.2.82.gc24b958

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2013-04-23 11:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-23 11:00 [PATCH] submodule.c: duplicate real_path's return value Nguyễn Thái Ngọc Duy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.