[haiku-commits] r38194 - haiku/trunk/src/system/kernel/vm

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 17 Aug 2010 17:39:26 +0200 (CEST)

Author: axeld
Date: 2010-08-17 17:39:26 +0200 (Tue, 17 Aug 2010)
New Revision: 38194
Changeset: http://dev.haiku-os.org/changeset/38194

Modified:
   haiku/trunk/src/system/kernel/vm/VMUserAddressSpace.cpp
Log:
* Fixed CID 1472: "next" could be NULL and dereferenced.
* Simplified code a bit.


Modified: haiku/trunk/src/system/kernel/vm/VMUserAddressSpace.cpp
===================================================================
--- haiku/trunk/src/system/kernel/vm/VMUserAddressSpace.cpp     2010-08-17 
15:34:24 UTC (rev 38193)
+++ haiku/trunk/src/system/kernel/vm/VMUserAddressSpace.cpp     2010-08-17 
15:39:26 UTC (rev 38194)
@@ -1,6 +1,6 @@
 /*
  * Copyright 2009-2010, Ingo Weinhold, ingo_weinhold@xxxxxxx
- * Copyright 2002-2009, Axel Dörfler, axeld@xxxxxxxxxxxxxxxxx
+ * Copyright 2002-2010, Axel Dörfler, axeld@xxxxxxxxxxxxxxxxx
  * Distributed under the terms of the MIT License.
  *
  * Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
@@ -192,24 +192,19 @@
 {
        VMUserArea* next = fAreas.GetNext(static_cast<VMUserArea*>(area));
        addr_t newEnd = area->Base() + (newSize - 1);
-       if (next == NULL) {
-               if (fEndAddress >= newEnd)
-                       return true;
-       } else {
-               if (next->Base() > newEnd)
-                       return true;
-       }
 
+       if (next == NULL)
+               return fEndAddress >= newEnd;
+
+       if (next->Base() > newEnd)
+               return true;
+
        // If the area was created inside a reserved area, it can
        // also be resized in that area
        // TODO: if there is free space after the reserved area, it could
        // be used as well...
-       if (next->id == RESERVED_AREA_ID && next->cache_offset <= area->Base()
-               && next->Base() + (next->Size() - 1) >= newEnd) {
-               return true;
-       }
-
-       return false;
+       return next->id == RESERVED_AREA_ID && next->cache_offset <= 
area->Base()
+               && next->Base() + (next->Size() - 1) >= newEnd;
 }
 
 


Other related posts:

  • » [haiku-commits] r38194 - haiku/trunk/src/system/kernel/vm - axeld