Signed-off-by: Fernando J. Pereda <ferdy@gentoo.org>
---
In Gentoo, packages compile with:
TMPDIR=/var/tmp/portage/dev-util/git-1.5.2/temp
so git_mkstemp couldn't fit the .diff_XXXXXX part and mkstemp was
returning EINVAL.
diff.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
Show changes to diff.c +2 −4
diff --git a/diff.c b/diff.c
index 33297aa..b23e190 100644
--- a/diff.c
+++ b/diff.c
@@ -186,13 +186,11 @@ 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[TEMPFILE_PATH_LEN];
+ char tmp_path[PATH_MAX];
} diff_temp[2];
static int count_lines(const char *data, int size)
@@ -1561,7 +1559,7 @@ static void prep_temp_blob(struct diff_tempfile *temp,
{
int fd;
- fd = git_mkstemp(temp->tmp_path, TEMPFILE_PATH_LEN, ".diff_XXXXXX");
+ fd = git_mkstemp(temp->tmp_path, PATH_MAX, ".diff_XXXXXX");
if (fd < 0)
die("unable to create temp-file");
if (write_in_full(fd, blob, size) != size)
--
1.5.2
--
Fernando J. Pereda Garcimartín
20BB BDC3 761A 4781 E6ED ED0B 0A48 5B0C 60BD 28D4