mirror of
https://github.com/NixOS/nix.git
synced 2025-11-11 13:06:01 +01:00
As discussed in the maintainer meeting on 2024-01-29.
Mainly this is to avoid a situation where the name is parsed and
treated as a file name, mostly to protect users.
.-* and ..-* are also considered invalid because they might strip
on that separator to remove versions. Doesn't really work, but that's
what we decided, and I won't argue with it, because .-* probably
doesn't seem to have a real world application anyway.
We do still permit a 1-character name that's just "-", which still
poses a similar risk in such a situation. We can't start disallowing
trailing -, because a non-zero number of users will need it and we've
seen how annoying and painful such a change is.
What matters most is preventing a situation where . or .. can be
injected, and to just get this done.
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| data | ||
| test-data | ||
| common-protocol.cc | ||
| derivation.cc | ||
| derived-path.cc | ||
| downstream-placeholder.cc | ||
| local.mk | ||
| machines.cc | ||
| nar-info-disk-cache.cc | ||
| nar-info.cc | ||
| outputs-spec.cc | ||
| path-info.cc | ||
| path.cc | ||
| references.cc | ||
| serve-protocol.cc | ||
| worker-protocol.cc | ||