]> git.saurik.com Git - apt.git/commitdiff
allow SHA1Summation to process a file descriptor until EOF
authorMatt Zimmerman <matt.zimmerman@canonical.com>
Fri, 4 Feb 2005 03:00:00 +0000 (03:00 +0000)
committerMatt Zimmerman <matt.zimmerman@canonical.com>
Fri, 4 Feb 2005 03:00:00 +0000 (03:00 +0000)
  * Apply patch from Anthony Towns to allow SHA1Summation to process a file
    descriptor until EOF, rather than requiring that the length of input be
    specified (Closes: #291338)

apt-pkg/contrib/sha1.cc
debian/changelog

index a22b4d2b2669f67406281755149d6b3ea98856ac..d7f6069827ddf2c3e91b0109dd9548df5b3879a3 100644 (file)
@@ -343,11 +343,16 @@ bool SHA1Summation::AddFD(int Fd,unsigned long Size)
 {
    unsigned char Buf[64 * 64];
    int Res = 0;
-   while (Size != 0)
+   int ToEOF = (Size == 0);
+   while (Size != 0 || ToEOF);
    {
-      Res = read(Fd,Buf,MIN(Size,sizeof(Buf)));
-      if (Res < 0 || (unsigned) Res != MIN(Size,sizeof(Buf)))
+      int n = sizeof(Buf);
+      if (!ToEOF) n = MIN(Size,n);
+      Res = read(Fd,Buf,n);
+      if (Res < 0 || (!ToEOF && (unsigned) Res != n)) // error, or short read
         return false;
+      if (ToEOF && Res == 0) // EOF
+         break;
       Size -= Res;
       Add(Buf,Res);
    }
index e23460206546df85d41637c43b14c26208284bf7..bf71480cc457072fff498e0846def1a97e69f70e 100644 (file)
@@ -1,6 +1,9 @@
 apt (0.6.31) hoary; urgency=low
 
   * Remove debugging output from apt.cron.daily (no one noticed?)
+  * Apply patch from Anthony Towns to allow SHA1Summation to process a file
+    descriptor until EOF, rather than requiring that the length of input be
+    specified (Closes: #291338)
 
  --