summaryrefslogtreecommitdiff
path: root/commit-graph.c
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2024-03-28 10:55:07 +0100
committerJohannes Schindelin <johannes.schindelin@gmx.de>2024-04-17 22:30:08 +0200
commit31572dc420afee36db8fbbbe060dd78c9a48778c (patch)
tree085a836f627a0d82920d65e95ddd199eab8dbfa5 /commit-graph.c
parent850c3a220e7a0b1bf740fba9ac8f3f2b0486a1af (diff)
clone: when symbolic links collide with directories, keep the latter
When recursively cloning a repository with submodules, we must ensure that the submodules paths do not suddenly contain symbolic links that would let Git write into unintended locations. We just plugged that vulnerability, but let's add some more defense-in-depth. Since we can only keep one item on disk if multiple index entries' paths collide, we may just as well avoid keeping a symbolic link (because that would allow attack vectors where Git follows those links by mistake). Technically, we handle more situations than cloning submodules into paths that were (partially) replaced by symbolic links. This provides defense-in-depth in case someone finds a case-folding confusion vulnerability in the future that does not even involve submodules. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Diffstat (limited to 'commit-graph.c')
0 files changed, 0 insertions, 0 deletions