forked from lix-project/lix
Merge pull request #6370 from edolstra/fetch-closure-query-params
fetchClosure: Don't allow URL query parameters
This commit is contained in:
commit
fbeb8fd1b4
|
@ -61,6 +61,12 @@ static void prim_fetchClosure(EvalState & state, const Pos & pos, Value * * args
|
||||||
.errPos = pos
|
.errPos = pos
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!parsedURL.query.empty())
|
||||||
|
throw Error({
|
||||||
|
.msg = hintfmt("'fetchClosure' does not support URL query parameters (in '%s')", *fromStoreUrl),
|
||||||
|
.errPos = pos
|
||||||
|
});
|
||||||
|
|
||||||
auto fromStore = openStore(parsedURL.to_string());
|
auto fromStore = openStore(parsedURL.to_string());
|
||||||
|
|
||||||
if (toCA) {
|
if (toCA) {
|
||||||
|
@ -87,6 +93,7 @@ static void prim_fetchClosure(EvalState & state, const Pos & pos, Value * * args
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (!state.store->isValidPath(*fromPath))
|
||||||
copyClosure(*fromStore, *state.store, RealisedPath::Set { *fromPath });
|
copyClosure(*fromStore, *state.store, RealisedPath::Set { *fromPath });
|
||||||
toPath = fromPath;
|
toPath = fromPath;
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,3 +56,15 @@ nix copy --to file://$cacheDir $caPath
|
||||||
fromPath = $caPath;
|
fromPath = $caPath;
|
||||||
}
|
}
|
||||||
") = $caPath ]]
|
") = $caPath ]]
|
||||||
|
|
||||||
|
# Check that URL query parameters aren't allowed.
|
||||||
|
clearStore
|
||||||
|
narCache=$TEST_ROOT/nar-cache
|
||||||
|
rm -rf $narCache
|
||||||
|
(! nix eval -v --raw --expr "
|
||||||
|
builtins.fetchClosure {
|
||||||
|
fromStore = \"file://$cacheDir?local-nar-cache=$narCache\";
|
||||||
|
fromPath = $caPath;
|
||||||
|
}
|
||||||
|
")
|
||||||
|
(! [ -e $narCache ])
|
||||||
|
|
Loading…
Reference in a new issue