]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/fileutl.cc
Complete Japanese translation
[apt.git] / apt-pkg / contrib / fileutl.cc
index 398830ff554854c2d7a591457759ebefad2c1f76..f24df65fcfa98e4be9ea9ec3fd76fc80af95437c 100644 (file)
@@ -251,7 +251,6 @@ int GetLock(string File,bool Errors)
 
       if (errno == ENOLCK)
       {
-
         _error->Warning(_("Not using locking for nfs mounted lock file %s"),File.c_str());
         return dup(0);       // Need something for the caller to close  
       }
@@ -1600,7 +1599,11 @@ unsigned long long FileFd::Size()
       char ignore[1000];
       unsigned long long read = 0;
       do {
-        Read(ignore, sizeof(ignore), &read);
+        if (Read(ignore, sizeof(ignore), &read) == false)
+        {
+           Seek(oldSeek);
+           return 0;
+        }
       } while(read != 0);
       size = Tell();
       Seek(oldSeek);
@@ -1617,10 +1620,16 @@ unsigned long long FileFd::Size()
        * bits of the file */
        // FIXME: Size for gz-files is limited by 32bit… no largefile support
        if (lseek(iFd, -4, SEEK_END) < 0)
-         return FileFdErrno("lseek","Unable to seek to end of gzipped file");
-       size = 0L;
+       {
+         FileFdErrno("lseek","Unable to seek to end of gzipped file");
+         return 0;
+       }
+       size = 0;
        if (read(iFd, &size, 4) != 4)
-         return FileFdErrno("read","Unable to read original size of gzipped file");
+       {
+         FileFdErrno("read","Unable to read original size of gzipped file");
+         return 0;
+       }
 
 #ifdef WORDS_BIGENDIAN
        uint32_t tmp_size = size;
@@ -1630,7 +1639,10 @@ unsigned long long FileFd::Size()
 #endif
 
        if (lseek(iFd, oldPos, SEEK_SET) < 0)
-         return FileFdErrno("lseek","Unable to seek in gzipped file");
+       {
+         FileFdErrno("lseek","Unable to seek in gzipped file");
+         return 0;
+       }
 
        return size;
    }