Explorar o código

The length given to msync was calculated wrong :/.

Jay Freeman (saurik) %!s(int64=9) %!d(string=hai) anos
pai
achega
89cb5d4dd7
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      apt-pkg/contrib/mmap.cc

+ 2 - 1
apt-pkg/contrib/mmap.cc

@@ -202,7 +202,8 @@ bool MMap::Sync(unsigned long Start,unsigned long Stop)
       {
 #ifdef _POSIX_SYNCHRONIZED_IO
 	 unsigned long long const PSize = sysconf(_SC_PAGESIZE);
-	 if (msync((char *)Base+(Start/PSize)*PSize, Stop - Start, MS_SYNC) < 0)
+         Start = (Start/PSize)*PSize;
+	 if (msync((char *)Base+Start, Stop - Start, MS_SYNC) < 0)
 	    return _error->Errno("msync", _("Unable to synchronize mmap"));
 #endif
       }