strbuf_readlink: support link targets that exceed PATH_MAX

strbuf_readlink() refuses to read link targets that exceed PATH_MAX (even
if a sufficient size was specified by the caller).

As some platforms support longer paths, remove this restriction (similar
to strbuf_getcwd()).

Signed-off-by: Karsten Blees <blees@dcon.de>
This commit is contained in:
Karsten Blees 2015-05-11 22:15:40 +02:00 коммит произвёл Johannes Schindelin
Родитель 80a9b89ab9
Коммит 85620c32a0
1 изменённых файлов: 1 добавлений и 3 удалений

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

@ -555,8 +555,6 @@ ssize_t strbuf_write(struct strbuf *sb, FILE *f)
} }
#define STRBUF_MAXLINK (2*PATH_MAX)
int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint) int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint)
{ {
size_t oldalloc = sb->alloc; size_t oldalloc = sb->alloc;
@ -564,7 +562,7 @@ int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint)
if (hint < 32) if (hint < 32)
hint = 32; hint = 32;
while (hint < STRBUF_MAXLINK) { for (;;) {
ssize_t len; ssize_t len;
strbuf_grow(sb, hint + 1); strbuf_grow(sb, hint + 1);