On Wed, Jan 24, 2018 at 7:58 PM, Jeff King <[email protected]> wrote:
> When git-daemon gets a pktline request, we strip off any
> trailing newline, replacing it with a NUL. Clients prior to
> 5ad312bede (in git v1.4.0) would send: [...]
>
> Reported-by: Michael Haggerty <[email protected]>
> Signed-off-by: Jeff King <[email protected]>
> ---
> diff --git a/t/t5570-git-daemon.sh b/t/t5570-git-daemon.sh
> @@ -196,5 +196,20 @@ test_expect_success 'daemon log records all attributes' '
> +test_expect_success FAKENC 'hostname interpolation works after LF-stripping'
> '
> + {
> + printf "git-upload-pack /interp.git\n\0host=localhost" |
> packetize
Do we care about the &&-chain here? (We'd notice if something went
wrong in 'packetize' even without &&-chain since 'input' would likely
end up with incorrect content, but still...)
> + printf "0000"
> + } >input &&
> + fake_nc "$GIT_DAEMON_HOST_PORT" <input >output &&
> + depacketize <output >output.raw &&
> +
> + # just pick out the value of master, which avoids any protocol
> + # particulars
> + perl -lne "print \$1 if m{^(\\S+) refs/heads/master}" <output.raw
> >actual &&
> + git -C "$repo" rev-parse master >expect &&
> + test_cmp expect actual
> +'