[PATCH] git: use git_mkstemp() instead of mkstemp() for diff generation.
authorHolger Eitzenberger <holger@my-eitzenberger.de>
Thu, 4 Aug 2005 20:49:49 +0000 (22:49 +0200)
committerJunio C Hamano <junkio@cox.net>
Sat, 6 Aug 2005 06:06:58 +0000 (23:06 -0700)
This lets you run git diff in a repository otherwise read-only
to you.

Signed-off-by: Junio C Hamano <junkio@cox.net>
diff.c

diff --git a/diff.c b/diff.c
index 361d7c09ddfad2cb7e1589367ec74bad8f9ca67d..9962fc359c04627803a042eb9d5bc02e293573ce 100644 (file)
--- 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)