make_absolute_path(): check bounds when seeing an overlong symlink

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Junio C Hamano 2008-12-17 12:37:48 -08:00
Родитель dfab6aaecf
Коммит 737e31af7a
1 изменённых файлов: 2 добавлений и 0 удалений

Просмотреть файл

@ -64,6 +64,8 @@ const char *make_absolute_path(const char *path)
len = readlink(buf, next_buf, PATH_MAX);
if (len < 0)
die ("Invalid symlink: %s", buf);
if (PATH_MAX <= len)
die("symbolic link too long: %s", buf);
next_buf[len] = '\0';
buf = next_buf;
buf_index = 1 - buf_index;