Skip to content

Commit

Permalink
strbuf_readlink: support link targets that exceed PATH_MAX
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
kblees authored and dscho committed Sep 22, 2022
1 parent fe95dea commit d925b68
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions strbuf.c
Expand Up @@ -559,16 +559,14 @@ 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;

if (hint < 32)
hint = 32;

while (hint < STRBUF_MAXLINK) {
for (;;) {
ssize_t len;

strbuf_grow(sb, hint + 1);
Expand Down

0 comments on commit d925b68

Please sign in to comment.