Ben Peart <benpe...@microsoft.com> writes:

> Correct the pointer arithmetic in adjust_dirname_case() so that it calls
> find_dir_entry() with the correct string length.  Previously passing in
> "dir1/foo" would pass a length of 6 instead of the correct 4.  This resulted 
> in
> find_dir_entry() never finding the entry and so the subsequent memcpy that 
> would
> fold the name to the version with the correct case never executed.
>
> Add a test to validate the corrected behavior with name folding of 
> directories.
>
> Signed-off-by: Ben Peart <benpe...@microsoft.com>
> ---

Thanks.

It appears that this codepath has been miscounting ever since it was
introduced in 41284eb0 ("name-hash: don't reuse cache_entry in
dir_entry", 2015-10-21).

> diff --git a/t/t0050-filesystem.sh b/t/t0050-filesystem.sh
> index b29d749bb7..219c96594c 100755
> --- a/t/t0050-filesystem.sh
> +++ b/t/t0050-filesystem.sh
> @@ -80,7 +80,17 @@ test_expect_success 'merge (case change)' '
> ...
> +test_expect_success CASE_INSENSITIVE_FS 'add directory (with different 
> case)' '
> +     git reset --hard initial &&
> +     mkdir -p dir1 &&
> +     mkdir -p dir1/dir2 &&

A single "mkdir -p dir1/dir2" should be sufficient, thanks to "-p" ;-)

> +     touch dir1/dir2/a &&
> +     touch dir1/dir2/b &&

Hmph.

Reply via email to