LocalStore::addValidPath(): Throw error when the CA assertion is wrong

Closes #2133.
This commit is contained in:
Eelco Dolstra 2018-05-03 11:02:40 +02:00
parent 53ec5ac69f
commit 80a7b16593
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE

View file

@ -581,7 +581,8 @@ void LocalStore::checkDerivationOutputs(const Path & drvPath, const Derivation &
uint64_t LocalStore::addValidPath(State & state,
const ValidPathInfo & info, bool checkOutputs)
{
assert(info.ca == "" || info.isContentAddressed(*this));
if (info.ca != "" && !info.isContentAddressed(*this))
throw Error("cannot add path '%s' to the Nix store because it claims to be content-addressed but isn't", info.path);
state.stmtRegisterValidPath.use()
(info.path)