X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/7db98ffceda347f0bc457c6bdc4ff33d60e26b18..b30aa0ec229b851b25ea07c758283f502a3f2cba:/methods/gzip.cc diff --git a/methods/gzip.cc b/methods/gzip.cc index 75a038979..f732c0b86 100644 --- a/methods/gzip.cc +++ b/methods/gzip.cc @@ -52,12 +52,19 @@ bool GzipMethod::Fetch(FetchItem *Itm) // Open the source and destination files FileFd From(Path,FileFd::ReadOnly); + // if the file is empty, just rename it and return + if(From.Size() == 0) + { + rename(Path.c_str(), Itm->DestFile.c_str()); + return true; + } + int GzOut[2]; if (pipe(GzOut) < 0) return _error->Errno("pipe",_("Couldn't open pipe for %s"),Prog); // Fork gzip - int Process = ExecFork(); + pid_t Process = ExecFork(); if (Process == 0) { close(GzOut[0]); @@ -111,6 +118,7 @@ bool GzipMethod::Fetch(FetchItem *Itm) if (To.Write(Buffer,Count) == false) { Failed = true; + FromGz.Close(); break; } }