diff options
author | Michael Vogt <mvo@debian.org> | 2014-01-29 10:37:17 +0100 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2014-01-29 10:39:18 +0100 |
commit | 6ae22905f66064f46c0abf05d269e47869c664be (patch) | |
tree | d47f7e653101141a8317deb972e0155b4392f141 /cmdline/apt-get.cc | |
parent | 6f43fac607c94f423f1d01708ecf947a8a303d38 (diff) |
fix apt-get download truncation (closes: #736962)
Diffstat (limited to 'cmdline/apt-get.cc')
-rw-r--r-- | cmdline/apt-get.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index da7d28a1e..6bff6e7de 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -678,14 +678,17 @@ bool DoDownload(CommandLine &CmdL) // copy files in local sources to the current directory for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I) - if ((*I)->Local == true && (*I)->Status == pkgAcquire::Item::StatDone) + { + std::string const filename = cwd + flNotDir((*I)->DestFile); + if ((*I)->Local == true && + filename != (*I)->DestFile && + (*I)->Status == pkgAcquire::Item::StatDone) { - std::string const filename = cwd + flNotDir((*I)->DestFile); std::ifstream src((*I)->DestFile.c_str(), std::ios::binary); std::ofstream dst(filename.c_str(), std::ios::binary); dst << src.rdbuf(); } - + } return Failed == false; } /*}}}*/ |