mirror of
https://github.com/NixOS/nix
synced 2024-10-18 14:32:45 -04:00
b5947b55e2
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 f1b4663805
)
604 B
604 B
synopsis | issues | prs |
---|---|---|
Store paths are allowed to start with `.` | 912 | 9867 9091 9095 9120 9121 9122 9130 9219 9224 |
Leading periods were allowed by accident in Nix 2.4. The Nix team has considered this to be a bug, but this behavior has since been relied on by users, leading to unnecessary difficulties.
From now on, leading periods are officially, definitively supported. The names .
and ..
are disallowed, as well as those starting with .-
or ..-
.
Nix versions that denied leading periods are documented in the issue.