summaryrefslogtreecommitdiff
path: root/diff.c
diff options
context:
space:
mode:
authorHolger Eitzenberger <holger@my-eitzenberger.de>2005-08-04 20:49:49 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-08-06 06:06:58 (GMT)
commit64f8a631e1112efdd4d4236442d59fe871da4bac (patch)
treed0560b5e6a545db2f8ec3c7bedfbe982e7b9827c /diff.c
parentf2db68eda89f2fbe7e4c1a69a3c10b25ea43667c (diff)
downloadgit-64f8a631e1112efdd4d4236442d59fe871da4bac.zip
git-64f8a631e1112efdd4d4236442d59fe871da4bac.tar.gz
git-64f8a631e1112efdd4d4236442d59fe871da4bac.tar.bz2
[PATCH] git: use git_mkstemp() instead of mkstemp() for diff generation.
This lets you run git diff in a repository otherwise read-only to you. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'diff.c')
-rw-r--r--diff.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/diff.c b/diff.c
index 361d7c0..9962fc3 100644
--- a/diff.c
+++ b/diff.c
@@ -41,11 +41,13 @@ static const char *external_diff(void)
return external_diff_cmd;
}
+#define TEMPFILE_PATH_LEN 50
+
static struct diff_tempfile {
const char *name; /* filename external diff should read from */
char hex[41];
char mode[10];
- char tmp_path[50];
+ char tmp_path[TEMPFILE_PATH_LEN];
} diff_temp[2];
static int count_lines(const char *filename)
@@ -421,8 +423,7 @@ static void prep_temp_blob(struct diff_tempfile *temp,
{
int fd;
- strcpy(temp->tmp_path, ".diff_XXXXXX");
- fd = mkstemp(temp->tmp_path);
+ fd = git_mkstemp(temp->tmp_path, TEMPFILE_PATH_LEN, ".diff_XXXXXX");
if (fd < 0)
die("unable to create temp-file");
if (write(fd, blob, size) != size)