Revert "StorePath: reject names starting with '.'"
This reverts commit 24bda0c7b381e1a017023c6f7cb9661fae8560bd.
(cherry picked from commit 9ddd0f2af8fd95e1380027a70d0aa650ea2fd5e4)
Change-Id: Ideb547e2a8ac911cf39d58d3e0c1553867bdd776
This commit is contained in:
parent
e2ab89a74b
commit
3a058dc4b3
|
@ -3,6 +3,6 @@
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
|
||||||
static constexpr std::string_view nameRegexStr = R"([0-9a-zA-Z\+\-_\?=][0-9a-zA-Z\+\-\._\?=]*)";
|
static constexpr std::string_view nameRegexStr = R"([0-9a-zA-Z\+\-\._\?=]+)";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,8 +11,6 @@ static void checkName(std::string_view path, std::string_view name)
|
||||||
if (name.size() > StorePath::MaxPathLen)
|
if (name.size() > StorePath::MaxPathLen)
|
||||||
throw BadStorePath("store path '%s' has a name longer than %d characters",
|
throw BadStorePath("store path '%s' has a name longer than %d characters",
|
||||||
path, StorePath::MaxPathLen);
|
path, StorePath::MaxPathLen);
|
||||||
if (name[0] == '.')
|
|
||||||
throw BadStorePath("store path '%s' starts with illegal character '.'", path);
|
|
||||||
// See nameRegexStr for the definition
|
// See nameRegexStr for the definition
|
||||||
for (auto c : name)
|
for (auto c : name)
|
||||||
if (!((c >= '0' && c <= '9')
|
if (!((c >= '0' && c <= '9')
|
||||||
|
|
|
@ -47,13 +47,8 @@ Gen<StorePathName> Arbitrary<StorePathName>::arbitrary()
|
||||||
pre += '-';
|
pre += '-';
|
||||||
break;
|
break;
|
||||||
case 64:
|
case 64:
|
||||||
// names aren't permitted to start with a period,
|
pre += '.';
|
||||||
// so just fall through to the next case here
|
break;
|
||||||
if (c != 0) {
|
|
||||||
pre += '.';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
[[fallthrough]];
|
|
||||||
case 65:
|
case 65:
|
||||||
pre += '_';
|
pre += '_';
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -39,7 +39,6 @@ TEST_DONT_PARSE(double_star, "**")
|
||||||
TEST_DONT_PARSE(star_first, "*,foo")
|
TEST_DONT_PARSE(star_first, "*,foo")
|
||||||
TEST_DONT_PARSE(star_second, "foo,*")
|
TEST_DONT_PARSE(star_second, "foo,*")
|
||||||
TEST_DONT_PARSE(bang, "foo!o")
|
TEST_DONT_PARSE(bang, "foo!o")
|
||||||
TEST_DONT_PARSE(dotfile, ".gitignore")
|
|
||||||
|
|
||||||
#undef TEST_DONT_PARSE
|
#undef TEST_DONT_PARSE
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue