aboutsummaryrefslogtreecommitdiff
path: root/diff.h
diff options
context:
space:
mode:
authorDmitry Potapov <dpotapov@gmail.com>2008-07-16 18:54:02 +0400
committerJunio C Hamano <gitster@pobox.com>2008-07-16 14:03:24 -0700
commitfd55a19eb1d49ae54008d932a65f79cd6fda45c9 (patch)
tree924e7874961e54d268e36a1e71b6b88414dc421b /diff.h
parent620e2bb93785ed8eb60846d94fd4753d4817c8ec (diff)
downloadgit-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.h')
-rw-r--r--diff.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/diff.h b/diff.h
index 5dc0cb595..50fb5ddb0 100644
--- a/diff.h
+++ b/diff.h
@@ -14,12 +14,12 @@ typedef void (*change_fn_t)(struct diff_options *options,
unsigned old_mode, unsigned new_mode,
const unsigned char *old_sha1,
const unsigned char *new_sha1,
- const char *base, const char *path);
+ const char *fullpath);
typedef void (*add_remove_fn_t)(struct diff_options *options,
int addremove, unsigned mode,
const unsigned char *sha1,
- const char *base, const char *path);
+ const char *fullpath);
typedef void (*diff_format_fn_t)(struct diff_queue_struct *q,
struct diff_options *options, void *data);
@@ -164,14 +164,13 @@ extern void diff_addremove(struct diff_options *,
int addremove,
unsigned mode,
const unsigned char *sha1,
- const char *base,
- const char *path);
+ const char *fullpath);
extern void diff_change(struct diff_options *,
unsigned mode1, unsigned mode2,
const unsigned char *sha1,
const unsigned char *sha2,
- const char *base, const char *path);
+ const char *fullpath);
extern void diff_unmerge(struct diff_options *,
const char *path,