]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/fileutl.cc
Do not try to read in FileFd::Read() if Size is 0
[apt.git] / apt-pkg / contrib / fileutl.cc
index 0d1c272abd8d9ec76cb5049f5dac8192d848dfdb..c906a0c9ee8d3f873f1c17de2b8a80a8d8e9a0dc 100644 (file)
@@ -1506,12 +1506,12 @@ FileFd::~FileFd()
    gracefully. */
 bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual)
 {
-   ssize_t Res;
+   ssize_t Res = 1;
    errno = 0;
    if (Actual != 0)
       *Actual = 0;
    *((char *)To) = '\0';
-   do
+   while (Res > 0 && Size > 0)
    {
       if (false)
         /* dummy so that the rest can be 'else if's */;
@@ -1605,7 +1605,6 @@ bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual)
       if (Actual != 0)
         *Actual += Res;
    }
-   while (Res > 0 && Size > 0);
    
    if (Size == 0)
       return true;