[[!comment format=mdwn
 username="smcv"
 avatar="http://cdn.libravatar.org/avatar/0ee943fe632ff995f6f0f25b7167d03b"
 subject="comment 6"
 date="2018-03-21T09:30:41Z"
 content="""
> the \"source\" directory still have those broken symlinks, and those shadow the underlay

Oh, you're using git-annex for the srcdir? The approach I'd vaguely had in mind was to
have an ordinary git repository with the Markdown/smaller assets/etc. as the srcdir,
and a parallel (no common commits) git-annex with larger assets (photos) as an underlay.

I feel as though broken symlinks in the srcdir probably *should* shadow the underlay,
because otherwise there's nothing we can use as a \"white-out\" to suppress files from
the underlay. (But perhaps the canonical white-out should be a symlink to /dev/null,
as used in systemd.)

In an ideal world, symlinks in the srcdir would be treated as the content that they
point to, if and only if the symlink is somehow \"safe\", with symlinks to non-pruned
files in the srcdir and symlinks to non-pruned files in .git/annex/objects/
specifically being considered \"safe\". This is not yet that ideal world, because my
to-do list for ikiwiki is a lot longer than the time I can justify spending on it.

I think this mechanism would need to be in terms of \"for page/attachment X (a
symlink), read file Y (the target of the symlink) instead of X\" determined
during scanning, rather than removing the `-l` check from `readfile()`, because
that `-l` check is a good safety-catch against implementation mistakes that
could lead to private file disclosure.

> I wrote a patch to work around that issue, to make sure that security checks properly fallback to the underlay when there's a broken symlink

Sorry, I am not going to review patches that relax the symlink security check unless I can
concentrate on them enough to be confident that I'm not introducing security vulnerabilities.
I realise this means that review has taken too long, but delays (even long ones) seem better
than CVEs.
"""]]
