Skip to content

Commit 2af882b

Browse files
committed
Merge branch 'jk/http-walker-buffer-underflow-fix'
"Dumb http" transport used to misparse a nonsense http-alternates response, which has been fixed. * jk/http-walker-buffer-underflow-fix: http-walker: fix buffer underflow processing remote alternates
2 parents f6c64c6 + d61434a commit 2af882b

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

http-walker.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,13 +301,16 @@ static void process_alternates_response(void *callback_data)
301301
okay = 1;
302302
}
303303
}
304-
/* skip "objects\n" at end */
305304
if (okay) {
306305
struct strbuf target = STRBUF_INIT;
307306
strbuf_add(&target, base, serverlen);
308-
strbuf_add(&target, data + i, posn - i - 7);
309-
310-
if (is_alternate_allowed(target.buf)) {
307+
strbuf_add(&target, data + i, posn - i);
308+
if (!strbuf_strip_suffix(&target, "objects")) {
309+
warning("ignoring alternate that does"
310+
" not end in 'objects': %s",
311+
target.buf);
312+
strbuf_release(&target);
313+
} else if (is_alternate_allowed(target.buf)) {
311314
warning("adding alternate object store: %s",
312315
target.buf);
313316
newalt = xmalloc(sizeof(*newalt));

0 commit comments

Comments
 (0)