The path, inside unpackedDir, of the part a relationship target names:
the target's dot segments resolve against baseDir, the source part's
folder inside unpackedDir (unused for a package-absolute target, which
resolves from the root), as part-name segments, a climb above the package
root stopping at the root, as RFC 3986's dot-segment removal stops it and
Word reads it: a stored root customXml item, styles part, header and notes
part, each named by ../../<name> or /../<name> (sessions 54 and 74 to
76, #984). The segments resolve before any file-system join, so a climb
cannot come back into the tree through the unpacked directory's own name
(CodeRabbit on #985). The path is lexical: containRelationshipTarget
still decides whether a symbolic link takes it outside the tree.
The path, inside
unpackedDir, of the part a relationship target names: the target's dot segments resolve againstbaseDir, the source part's folder insideunpackedDir(unused for a package-absolute target, which resolves from the root), as part-name segments, a climb above the package root stopping at the root, as RFC 3986's dot-segment removal stops it and Word reads it: a stored root customXml item, styles part, header and notes part, each named by../../<name>or/../<name>(sessions 54 and 74 to 76, #984). The segments resolve before any file-system join, so a climb cannot come back into the tree through the unpacked directory's own name (CodeRabbit on #985). The path is lexical: containRelationshipTarget still decides whether a symbolic link takes it outside the tree.