Duy Nguyen <pclo...@gmail.com> writes:
> The amount of changes is unbelievable for fixing such a rare case
> though. I wonder if we can just detect this in daemon.c and pass
> "./~foo/bar" instead of "~foo/bar" to enter_repo() in non-strict mode
> to "disable" expand_user_path(). If it works, it's much simpler
> changes (even though a bit hacky)
Conceptually, it ought to be updating the code that says "Does it
begin with a tilde? Then try to do user-path expansion and fail if
that is not enabled and if it succeeds use the resulting directory"
to "Is user-path enabled and does it begin with a tilde? Then try
to do user-path expansion and if it succeeds use the resulting
directory". Compared to that mental model we have with this
codepath, I agree that the change does look quite invasive and
It is OK for a change to be large, as long as the end result is
easier to read and understand than the original. I am undecided if
that is the case with this patch, though.
Also I am a bit worried about the change in the semantics. While it
is not the best way to achieve this, the server operators could use
it as a way to add directories whose contents need to be hidden to
give them names that begin with a tilde without enabling user-path
expansion. This change may be a new and useful feature for Luke,
but to these server operators this change can be a new bug---it is
probably a minor new bug as they can work it around by using other
means to hide these directories, though.