- use correct size type, add missing ftruncate() return value check (Ralf)
authorpmatilai <pmatilai>
Sun, 11 Jun 2006 04:35:06 +0000 (04:35 +0000)
committerpmatilai <pmatilai>
Sun, 11 Jun 2006 04:35:06 +0000 (04:35 +0000)
apt-pkg/contrib/mmap.cc
apt-pkg/contrib/mmap.h

index bd6c1e2..d0e584a 100644 (file)
@@ -128,13 +128,13 @@ bool MMap::Sync()
 // MMap::Sync - Syncronize a section of the file to disk               /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool MMap::Sync(unsigned long Start,unsigned long Stop)
+bool MMap::Sync(size_t Start,size_t Stop)
 {
    if ((Flags & UnMapped) == UnMapped)
       return true;
    
 #ifdef _POSIX_SYNCHRONIZED_IO
-   unsigned long PSize = sysconf(_SC_PAGESIZE);
+   long PSize = sysconf(_SC_PAGESIZE);
    if ((Flags & ReadOnly) != ReadOnly)
       if (msync((char *)Base+(int)(Start/PSize)*PSize,Stop - Start,MS_SYNC) != 0)
         return _error->Errno("msync","Unable to write mmap");
@@ -194,7 +194,11 @@ DynamicMMap::~DynamicMMap()
    off_t EndOfFile = iSize;
    iSize = WorkSpace;
    Close(false);
-   ftruncate(Fd->Fd(),EndOfFile);
+   if (ftruncate(Fd->Fd(),EndOfFile) != 0)
+   {
+     _error->Errno("ftruncate", _("Failed to ftruncate"));
+     return;
+   }
 }  
                                                                        /*}}}*/
 // DynamicMMap::RawAllocate - Allocate a raw chunk of unaligned space  /*{{{*/
index ec832ca..0e785d3 100644 (file)
@@ -62,7 +62,7 @@ class MMap
    
    // File manipulators
    bool Sync();
-   bool Sync(unsigned long Start,unsigned long Stop);
+   bool Sync(size_t Start,size_t Stop);
    
    MMap(FileFd &F,unsigned long Flags);
    MMap(unsigned long Flags);