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>
This commit is contained in:

committed by
Junio C Hamano

parent
620e2bb937
commit
fd55a19eb1
@ -259,7 +259,7 @@ static int tree_difference = REV_TREE_SAME;
|
||||
static void file_add_remove(struct diff_options *options,
|
||||
int addremove, unsigned mode,
|
||||
const unsigned char *sha1,
|
||||
const char *base, const char *path)
|
||||
const char *fullpath)
|
||||
{
|
||||
int diff = REV_TREE_DIFFERENT;
|
||||
|
||||
@ -285,7 +285,7 @@ static void file_change(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)
|
||||
{
|
||||
tree_difference = REV_TREE_DIFFERENT;
|
||||
DIFF_OPT_SET(options, HAS_CHANGES);
|
||||
|
Reference in New Issue
Block a user