# [PATCH] init: Do not segfault on big GIT_TEMPLATE_DIR environment variable

1 messages from 2009-04-18 to 2009-04-18. Participants: Frank Lichtenheld.
Thread: https://gitlist.dev/t/18934

## Frank Lichtenheld, 2009-04-18 14:14

Subject: [PATCH] init: Do not segfault on big GIT_TEMPLATE_DIR environment variable
Message-ID: <1240064042-22539-1-git-send-email-frank@lichtenheld.de>
URL: https://gitlist.dev/e/1240064042-22539-1-git-send-email-frank%40lichtenheld.de

```
From: Frank Lichtenheld <flichtenheld@astaro.com>

Signed-off-by: Frank Lichtenheld <flichtenheld@astaro.com>
---
 builtin-init-db.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/builtin-init-db.c b/builtin-init-db.c
index 4e02b33..d1fa12a 100644
--- a/builtin-init-db.c
+++ b/builtin-init-db.c
@@ -122,8 +122,10 @@ static void copy_templates(const char *template_dir)
 		template_dir = system_path(DEFAULT_GIT_TEMPLATE_DIR);
 	if (!template_dir[0])
 		return;
+	template_len = strlen(template_dir);
+	if (PATH_MAX <= (template_len+strlen("/config")))
+		die("insanely long template path %s", template_dir);
 	strcpy(template_path, template_dir);
-	template_len = strlen(template_path);
 	if (template_path[template_len-1] != '/') {
 		template_path[template_len++] = '/';
 		template_path[template_len] = 0;
-- 
1.6.2.1

```
