[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>
This commit is contained in:
Holger Eitzenberger 2005-08-04 22:49:49 +02:00 committed by Junio C Hamano
parent f2db68eda8
commit 64f8a631e1

7
diff.c
View File

@ -41,11 +41,13 @@ static const char *external_diff(void)
return external_diff_cmd; return external_diff_cmd;
} }
#define TEMPFILE_PATH_LEN 50
static struct diff_tempfile { static struct diff_tempfile {
const char *name; /* filename external diff should read from */ const char *name; /* filename external diff should read from */
char hex[41]; char hex[41];
char mode[10]; char mode[10];
char tmp_path[50]; char tmp_path[TEMPFILE_PATH_LEN];
} diff_temp[2]; } diff_temp[2];
static int count_lines(const char *filename) static int count_lines(const char *filename)
@ -421,8 +423,7 @@ static void prep_temp_blob(struct diff_tempfile *temp,
{ {
int fd; int fd;
strcpy(temp->tmp_path, ".diff_XXXXXX"); fd = git_mkstemp(temp->tmp_path, TEMPFILE_PATH_LEN, ".diff_XXXXXX");
fd = mkstemp(temp->tmp_path);
if (fd < 0) if (fd < 0)
die("unable to create temp-file"); die("unable to create temp-file");
if (write(fd, blob, size) != size) if (write(fd, blob, size) != size)