Przeglądaj źródła

* apt-pkg/contrib/fileutl.cc:
- really detect bigendian machines by including config.h,
so we can really (Closes: #612986)
* apt-pkg/contrib/mmap.cc:
- Base has as 'valid' failure states 0 and -1 so add a simple
validData method to check for failure states

David Kalnischkies 15 lat temu
rodzic
commit
2a79d5b560

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

@@ -43,7 +43,8 @@
 #include <set>
 #include <algorithm>
 
-#ifndef WORDS_BIGENDIAN
+#include <config.h>
+#ifdef WORDS_BIGENDIAN
 #include <inttypes.h>
 #endif
 									/*}}}*/

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

@@ -106,7 +106,7 @@ bool MMap::Map(FileFd &Fd)
 /* */
 bool MMap::Close(bool DoSync)
 {
-   if ((Flags & UnMapped) == UnMapped || Base == 0 || iSize == 0)
+   if ((Flags & UnMapped) == UnMapped || validData() == false || iSize == 0)
       return true;
    
    if (DoSync == true)
@@ -266,7 +266,7 @@ DynamicMMap::~DynamicMMap()
 {
    if (Fd == 0)
    {
-      if (Base == 0)
+      if (validData() == false)
 	 return;
 #ifdef _POSIX_MAPPED_FILES
       munmap(Base, WorkSpace);

+ 1 - 0
apt-pkg/contrib/mmap.h

@@ -62,6 +62,7 @@ class MMap
    inline void *Data() {return Base;}; 
    inline unsigned long Size() {return iSize;};
    inline void AddSize(unsigned long const size) {iSize += size;};
+   inline bool validData() const { return Base != (void *)-1 && Base != 0; };
    
    // File manipulators
    bool Sync();

+ 12 - 0
debian/changelog

@@ -1,3 +1,15 @@
+apt (0.8.11.3) UNRELEASED; urgency=low
+
+  [ David Kalnischkies ]
+  * apt-pkg/contrib/fileutl.cc:
+    - really detect bigendian machines by including config.h,
+      so we can really (Closes: #612986)
+  * apt-pkg/contrib/mmap.cc:
+    - Base has as 'valid' failure states 0 and -1 so add a simple
+      validData method to check for failure states
+
+ -- David Kalnischkies <kalnischkies@gmail.com>  Mon, 14 Feb 2011 16:58:03 +0100
+
 apt (0.8.11.2) unstable; urgency=low
 
   [ Michael Vogt ]

+ 1 - 1
methods/rred.cc

@@ -256,7 +256,7 @@ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From,		/*{{{*/
 	if (Patch.gzFd() != NULL) {
 		unsigned long mapSize = Patch.Size();
 		DynamicMMap* dyn = new DynamicMMap(0, mapSize, 0);
-		if (dyn->Data() == 0) {
+		if (dyn->validData() == false) {
 			delete dyn;
 			return MMAP_FAILED;
 		}