"Andrzej Hunt via GitGitGadget" [off-list ref] writes:
quoted hunk
diff --git a/connect.c b/connect.c
index aff13a270e6..eaf7d6d2618 100644
--- a/connect.c
+++ b/connect.c
@@ -557,6 +557,8 @@ const char *parse_feature_value(const char *feature_list, const char *feature, i
if (!*value || isspace(*value)) {
if (lenp)
*lenp = 0;
+ if (offset)
+ *offset = found + len - feature_list;
return value;
}
/* feature with a value (e.g., "agent=git/1.2.3") */diff --git a/t/t5704-protocol-violations.sh b/t/t5704-protocol-violations.sh
index 5c941949b98..34538cebf01 100755
--- a/t/t5704-protocol-violations.sh
+++ b/t/t5704-protocol-violations.sh
@@ -32,4 +32,17 @@ test_expect_success 'extra delim packet in v2 fetch args' '
test_i18ngrep "expected flush after fetch arguments" err
'
+test_expect_success 'bogus symref in v0 capabilities' '
+ test_commit foo &&
+ oid=$(git rev-parse HEAD) &&
+ {
+ printf "%s HEAD\0symref object-format=%s\n" "$oid" "$GIT_DEFAULT_HASH" |
+ test-tool pkt-line pack-raw-stdin &&
+ printf "0000"
+ } >input &&
+ git ls-remote --upload-pack="cat input ;:" . >actual &&
+ printf "%s\tHEAD\n" "$oid" >expect &&
+ test_cmp expect actual
+'
+
test_done
base-commit: 186eaaae567db501179c0af0bf89b34cbea02c26
I've been seeing an occasional and not-reliably-reproducible test
failure from t5704 in 'seen' these days---since this is the only
commit that touches t5704, I am suspecting if there is something
racy about it, but I am coming up empty after staring at it for a
few minutes.
Building 87446480 (connect: also update offset for features without
values, 2021-09-18), which is an application of the patch directly on
top of v2.33.0, and doing
$ cd t
$ while sh t5704-*.sh; do :; done
I can get it fail in a dozen iterations or so when the box is
loaded, so it does seem timing dependent.