diff options
author | Dmitry Potapov <dpotapov@gmail.com> | 2008-07-16 18:54:02 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-07-16 14:03:24 -0700 |
commit | fd55a19eb1d49ae54008d932a65f79cd6fda45c9 (patch) | |
tree | 924e7874961e54d268e36a1e71b6b88414dc421b /diff-lib.c | |
parent | 620e2bb93785ed8eb60846d94fd4753d4817c8ec (diff) | |
download | git-fd55a19eb1d49ae54008d932a65f79cd6fda45c9.tar.gz git-fd55a19eb1d49ae54008d932a65f79cd6fda45c9.tar.xz |
Fix buffer overflow in git diff
If PATH_MAX on your system is smaller than a path stored, it may cause
buffer overflow and stack corruption in diff_addremove() and diff_change()
functions when running git-diff
Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'diff-lib.c')
-rw-r--r-- | diff-lib.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/diff-lib.c b/diff-lib.c index b17722d66..e7eaff9a6 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -171,7 +171,7 @@ int run_diff_files(struct rev_info *revs, unsigned int option) if (silent_on_removed) continue; diff_addremove(&revs->diffopt, '-', ce->ce_mode, - ce->sha1, ce->name, NULL); + ce->sha1, ce->name); continue; } changed = ce_match_stat(ce, &st, ce_option); @@ -184,7 +184,7 @@ int run_diff_files(struct rev_info *revs, unsigned int option) newmode = ce_mode_from_stat(ce, st.st_mode); diff_change(&revs->diffopt, oldmode, newmode, ce->sha1, (changed ? null_sha1 : ce->sha1), - ce->name, NULL); + ce->name); } diffcore_std(&revs->diffopt); @@ -208,7 +208,7 @@ static void diff_index_show_file(struct rev_info *revs, const unsigned char *sha1, unsigned int mode) { diff_addremove(&revs->diffopt, prefix[0], mode, - sha1, ce->name, NULL); + sha1, ce->name); } static int get_stat_data(struct cache_entry *ce, @@ -312,7 +312,7 @@ static int show_modified(struct oneway_unpack_data *cbdata, return 0; diff_change(&revs->diffopt, oldmode, mode, - old->sha1, sha1, old->name, NULL); + old->sha1, sha1, old->name); return 0; } |