From: Karsten Blees Date: Tue, 16 Dec 2025 15:33:48 +0000 (+0000) Subject: strbuf_readlink(): support link targets that exceed PATH_MAX X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5f09f93726e71552a0f5ffd72d488ed8dbbedee9;p=thirdparty%2Fgit.git strbuf_readlink(): support link targets that exceed PATH_MAX The `strbuf_readlink()` function refuses to read link targets that exceed PATH_MAX (even if a sufficient size was specified by the caller). As some platforms (*cough* Windows *cough*) support longer paths, remove this restriction (similar to `strbuf_getcwd()`). Signed-off-by: Karsten Blees Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- diff --git a/strbuf.c b/strbuf.c index 44a8f6a554..fa4e30f112 100644 --- a/strbuf.c +++ b/strbuf.c @@ -566,8 +566,6 @@ ssize_t strbuf_write(struct strbuf *sb, FILE *f) return sb->len ? fwrite(sb->buf, 1, sb->len, f) : 0; } -#define STRBUF_MAXLINK (2*PATH_MAX) - int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint) { size_t oldalloc = sb->alloc; @@ -575,7 +573,7 @@ int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint) if (hint < 32) hint = 32; - while (hint < STRBUF_MAXLINK) { + for (;;) { ssize_t len; strbuf_grow(sb, hint + 1);