[PATCH] Fix git-init-db creating crap directories
Dear diary, on Tue, Sep 20, 2005 at 01:58:52AM CEST, I got a letter where "H. Peter Anvin" <hpa@zytor.com> told me that...
Show 19 quoted lines
> Petr Baudis wrote:
> >Dear diary, on Tue, Sep 20, 2005 at 01:16:14AM CEST, I got a letter
> >
> >Another idea - try this patch:
> >
> >diff --git a/init-db.c b/init-db.c
> >--- a/init-db.c
> >+++ b/init-db.c
> >@@ -154,6 +154,7 @@ static void copy_templates(const char *g
> > }
> >
> > memcpy(path, git_dir, len);
> >+ path[len] = 0;
> > copy_templates_1(path, len,
> > template_path, template_len,
> > dir);
> >
>
> This seems to have worked.
Great. Resending a marginally better version with a cool log message and everything.
--
The base target directory for the templates copying was initialized to git_dir, but git_dir[len] is not zero but / at the time we do the initialization. This is not what we want for our target directory string since we pass it to mkdir(), so make it zero-terminated manually.
Signed-off-by: Petr Baudis <pasky@suse.cz>
--- commit dbe1fe2f0d6de58bc0c9f98e6cf9573874612890 tree 30398d409fa27e95e3e592c803f6cd5a93652234 parent 79d2a11ec497fe940ca9a1fd8e0b9f295d39c290 author Petr Baudis <pasky@suse.cz> Tue, 20 Sep 2005 01:55:53 +0200 committer Petr Baudis <xpasky@machine.(none)> Tue, 20 Sep 2005 01:55:53 +0200
init-db.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/init-db.c b/init-db.c
--- a/init-db.c
+++ b/init-db.c
@@ -153,7 +153,8 @@ static void copy_templates(const char *g
return;
}
- memcpy(path, git_dir, len);
+ memcpy(path, git_dir, len-1);
+ path[len] = 0;
copy_templates_1(path, len,
template_path, template_len,
dir);
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.