Skip to content

Commit bc4c566

Browse files
committed
Merge branch 'en/serve-promisor-remote-fix'
A client requesting the promisor-remote capability without a value caused a null pointer dereference, which has been corrected by rejecting a request without an argument. * en/serve-promisor-remote-fix: serve: reject valueless promisor-remote capability
2 parents 781fd4e + dd6b35f commit bc4c566

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

serve.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ static int promisor_remote_advertise(struct repository *r,
4646
static void promisor_remote_receive(struct repository *r,
4747
const char *remotes)
4848
{
49+
if (!remotes)
50+
die("promisor-remote capability requires an argument");
51+
4952
mark_promisor_remotes_as_accepted(r, remotes);
5053
}
5154

t/t5701-git-serve.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,17 @@ test_expect_success 'request invalid capability' '
7171
test_grep "unknown capability" err
7272
'
7373

74+
test_expect_success 'promisor-remote capability requires an argument' '
75+
test-tool pkt-line pack >in <<-EOF &&
76+
command=ls-refs
77+
object-format=$(test_oid algo)
78+
promisor-remote
79+
0000
80+
EOF
81+
test_must_fail test-tool serve-v2 --stateless-rpc 2>err <in &&
82+
test_grep "promisor-remote capability requires an argument" err
83+
'
84+
7485
test_expect_success 'request with no command' '
7586
test-tool pkt-line pack >in <<-EOF &&
7687
agent=git/test

0 commit comments

Comments
 (0)