diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2009-08-28 21:07:55 +0200 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2009-08-28 21:07:55 +0200 |
commit | 6abe26994fd82bef9bc357055d1dc4feee261a4d (patch) | |
tree | 72e201eab5b212b073ea5cdd9486dd9a78ba3ea5 /apt-pkg/acquire-item.cc | |
parent | b74d2d3af3238210bfafe57562d3670327918cd9 (diff) |
* apt-pkg/acquire-item.cc:
- do not segfault on invalid items (closes: #544080)
Diffstat (limited to 'apt-pkg/acquire-item.cc')
-rw-r--r-- | apt-pkg/acquire-item.cc | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 94341c81a..afb3daad3 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -596,21 +596,21 @@ void pkgAcqIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*{{{*/ if(Desc.URI.substr(nameLen) != *t) continue; - // we want to try it with the next extension + // we want to try it with the next extension (and make sure to + // not skip over the end) t++; + if (t == types.end()) + break; - if (t != types.end()) - { - Desc.URI = Desc.URI.substr(0, nameLen) + *t; - - new pkgAcqIndex(Owner, RealURI, Desc.Description, Desc.ShortDesc, - ExpectedHash, string(".").append(*t)); - - Status = StatDone; - Complete = false; - Dequeue(); - return; - } + // queue new download + Desc.URI = Desc.URI.substr(0, nameLen) + *t; + new pkgAcqIndex(Owner, RealURI, Desc.Description, Desc.ShortDesc, + ExpectedHash, string(".").append(*t)); + + Status = StatDone; + Complete = false; + Dequeue(); + return; } // on decompression failure, remove bad versions in partial/ |