Fix segfault in builtin fetchurl with hashed mirrors + SRI hashes
This commit is contained in:
parent
5450af5d0d
commit
aec545c20b
2 changed files with 6 additions and 1 deletions
|
@ -64,7 +64,8 @@ void builtinFetchurl(const BasicDerivation & drv, const std::string & netrcData)
|
||||||
try {
|
try {
|
||||||
if (!hasSuffix(hashedMirror, "/")) hashedMirror += '/';
|
if (!hasSuffix(hashedMirror, "/")) hashedMirror += '/';
|
||||||
auto ht = parseHashType(getAttr("outputHashAlgo"));
|
auto ht = parseHashType(getAttr("outputHashAlgo"));
|
||||||
fetch(hashedMirror + printHashType(ht) + "/" + Hash(getAttr("outputHash"), ht).to_string(Base16, false));
|
auto h = Hash(getAttr("outputHash"), ht);
|
||||||
|
fetch(hashedMirror + printHashType(h.type) + "/" + h.to_string(Base16, false));
|
||||||
return;
|
return;
|
||||||
} catch (Error & e) {
|
} catch (Error & e) {
|
||||||
debug(e.what());
|
debug(e.what());
|
||||||
|
|
|
@ -42,6 +42,10 @@ ln -s $(pwd)/fetchurl.sh $mirror/sha512/$hash32
|
||||||
|
|
||||||
outPath=$(nix-build '<nix/fetchurl.nix>' --argstr url file:///no-such-dir/fetchurl.sh --argstr sha512 $hash --no-out-link --hashed-mirrors "file://$mirror")
|
outPath=$(nix-build '<nix/fetchurl.nix>' --argstr url file:///no-such-dir/fetchurl.sh --argstr sha512 $hash --no-out-link --hashed-mirrors "file://$mirror")
|
||||||
|
|
||||||
|
# Test hashed mirrors with an SRI hash.
|
||||||
|
nix-build '<nix/fetchurl.nix>' --argstr url file:///no-such-dir/fetchurl.sh --argstr hash $(nix to-sri --type sha512 $hash) \
|
||||||
|
--argstr name bla --no-out-link --hashed-mirrors "file://$mirror"
|
||||||
|
|
||||||
# Test unpacking a NAR.
|
# Test unpacking a NAR.
|
||||||
rm -rf $TEST_ROOT/archive
|
rm -rf $TEST_ROOT/archive
|
||||||
mkdir -p $TEST_ROOT/archive
|
mkdir -p $TEST_ROOT/archive
|
||||||
|
|
Loading…
Reference in a new issue