]> git.saurik.com Git - apt.git/commitdiff
Do not try to read in FileFd::Read() if Size is 0
authorJulian Andres Klode <jak@debian.org>
Sat, 19 Dec 2015 12:07:12 +0000 (13:07 +0100)
committerJulian Andres Klode <jak@debian.org>
Sat, 19 Dec 2015 12:13:02 +0000 (13:13 +0100)
There's no point trying to read 0 bytes, so let's just not
do this and switch to a while loop like in Write().

Gbp-Dch: ignore

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;