Merge branch 'dt/name-hash-dir-entry-fix'
commit69fe31887bf8be496bb0adb4db3150cec52e1a2c
authorJunio C Hamano <gitster@pobox.com>
Thu, 29 Oct 2015 20:59:19 +0000 (29 13:59 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 29 Oct 2015 20:59:19 +0000 (29 13:59 -0700)
tree4e9040a5fa5d0fe7ae4b62ab11c6b55723b77f4c
parent433cc7e3fb861d4530ca6c49b152e94219bddfda
parent41284eb0f944fe2d73708bb4105a8e3ccd0297df
Merge branch 'dt/name-hash-dir-entry-fix'

The name-hash subsystem that is used to cope with case insensitive
filesystems keeps track of directories and their on-filesystem
cases for all the paths in the index by holding a pointer to a
randomly chosen cache entry that is inside the directory (for its
ce->ce_name component).  This pointer was not updated even when the
cache entry was removed from the index, leading to use after free.
This was fixed by recording the path for each directory instead of
borrowing cache entries and restructuring the API somewhat.

* dt/name-hash-dir-entry-fix:
  name-hash: don't reuse cache_entry in dir_entry
cache.h
dir.c
read-cache.c