diff options
| author | Junio C Hamano <gitster@pobox.com> | 2026-01-21 08:29:00 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2026-01-21 08:29:00 -0800 |
| commit | 39d66ddffd2b1dda275a6dd61df3eebac35fcf8a (patch) | |
| tree | 3b18ec048f1154499995d5bf91b67ff9213198c8 /strbuf.c | |
| parent | bc5cbbe24650f4234ed4ed2c21c58058f96dfcac (diff) | |
| parent | aa7b8864d841f16044b0d79fce5baaec1830b3e3 (diff) | |
| download | git-39d66ddffd2b1dda275a6dd61df3eebac35fcf8a.tar.xz | |
Merge branch 'js/prep-symlink-windows'
Further preparation to upstream symbolic link support on Windows.
* js/prep-symlink-windows:
trim_last_path_component(): avoid hard-coding the directory separator
strbuf_readlink(): support link targets that exceed 2*PATH_MAX
strbuf_readlink(): avoid calling `readlink()` twice in corner-cases
init: do parse _all_ core.* settings early
mingw: do resolve symlinks in `getcwd()`
Diffstat (limited to 'strbuf.c')
| -rw-r--r-- | strbuf.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -566,7 +566,7 @@ 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) +#define STRBUF_MAXLINK (32767) int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint) { @@ -578,12 +578,12 @@ int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint) while (hint < STRBUF_MAXLINK) { ssize_t len; - strbuf_grow(sb, hint); - len = readlink(path, sb->buf, hint); + strbuf_grow(sb, hint + 1); + len = readlink(path, sb->buf, hint + 1); if (len < 0) { if (errno != ERANGE) break; - } else if (len < hint) { + } else if (len <= hint) { strbuf_setlen(sb, len); return 0; } |
