瀏覽代碼

The length given to msync was calculated wrong :/.

Jay Freeman (saurik) 9 年之前
父節點
當前提交
89cb5d4dd7
共有 1 個文件被更改,包括 2 次插入1 次删除
  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
       }