projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Exec git programs without using PATH.
[git.git]
/
diff.c
diff --git
a/diff.c
b/diff.c
index
c815918
..
17d68fa
100644
(file)
--- a/
diff.c
+++ b/
diff.c
@@
-504,9
+504,9
@@
static void prepare_temp_file(const char *name,
}
if (S_ISLNK(st.st_mode)) {
int ret;
}
if (S_ISLNK(st.st_mode)) {
int ret;
- char
*buf, buf_[1024];
- buf = ((sizeof(buf_) < st.st_size) ?
-
xmalloc(st.st_size) : buf_
);
+ char
buf[PATH_MAX + 1]; /* ought to be SYMLINK_MAX */
+ if (sizeof(buf) <= st.st_size)
+
die("symlink too long: %s", name
);
ret = readlink(name, buf, st.st_size);
if (ret < 0)
die("readlink(%s)", name);
ret = readlink(name, buf, st.st_size);
if (ret < 0)
die("readlink(%s)", name);
@@
-650,7
+650,7
@@
static void diff_fill_sha1_info(struct diff_filespec *one)
if (DIFF_FILE_VALID(one)) {
if (!one->sha1_valid) {
struct stat st;
if (DIFF_FILE_VALID(one)) {
if (!one->sha1_valid) {
struct stat st;
- if (stat(one->path, &st) < 0)
+ if (
l
stat(one->path, &st) < 0)
die("stat %s", one->path);
if (index_path(one->sha1, one->path, &st, 0))
die("cannot hash %s\n", one->path);
die("stat %s", one->path);
if (index_path(one->sha1, one->path, &st, 0))
die("cannot hash %s\n", one->path);
@@
-787,7
+787,7
@@
int diff_setup_done(struct diff_options *options)
* so it is safe for us to do this here. Also
* it does not smudge active_cache or active_nr
* when it fails, so we do not have to worry about
* so it is safe for us to do this here. Also
* it does not smudge active_cache or active_nr
* when it fails, so we do not have to worry about
- * cleaning it up ou
f
selves either.
+ * cleaning it up ou
r
selves either.
*/
read_cache();
}
*/
read_cache();
}