diff options
author | Julian Andres Klode <jak@debian.org> | 2018-02-19 15:06:06 +0000 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2018-02-19 15:06:06 +0000 |
commit | 928ecff984be22632c27a69e072741e74491292c (patch) | |
tree | f0d760cc2da3841b90e7f067fd39dbc355c971c8 /apt-pkg/acquire-item.cc | |
parent | 13c85c9cec9e071e90ea190a74cbaabe7c51024c (diff) | |
parent | 9e5899cac1a6367e3769af52a724821880e538f6 (diff) |
Merge branch 'pu/not-valid-before' into 'master'
Check that Date of Release file is not in the future
See merge request apt-team/apt!3
Diffstat (limited to 'apt-pkg/acquire-item.cc')
-rw-r--r-- | apt-pkg/acquire-item.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 86ffe9e49..21d990fba 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -1661,6 +1661,25 @@ bool pkgAcqMetaBase::VerifyVendor(string const &) /*{{{*/ } } + if (TransactionManager->MetaIndexParser->GetNotBefore() > 0) + { + time_t const invalid_for = TransactionManager->MetaIndexParser->GetNotBefore() - time(nullptr); + if (invalid_for > 0) + { + std::string errmsg; + strprintf(errmsg, + // TRANSLATOR: The first %s is the URL of the bad Release file, the second is + // the time until the file will be valid - formatted in the same way as in + // the download progress display (e.g. 7d 3h 42min 1s) + _("Release file for %s is not valid yet (invalid for another %s). " + "Updates for this repository will not be applied."), + Target.URI.c_str(), TimeToStr(invalid_for).c_str()); + if (ErrorText.empty()) + ErrorText = errmsg; + return _error->Error("%s", errmsg.c_str()); + } + } + /* Did we get a file older than what we have? This is a last minute IMS hit and doubles as a prevention of downgrading us to older (still valid) files */ if (TransactionManager->IMSHit == false && TransactionManager->LastMetaIndexParser != NULL && |