vma-iter: Avoid empty intervals.
authorBruno Haible <bruno@clisp.org>
Mon, 24 Jan 2011 10:05:18 +0000 (11:05 +0100)
committerBruno Haible <bruno@clisp.org>
Mon, 24 Jan 2011 10:05:18 +0000 (11:05 +0100)
* lib/vma-iter.c (vma_iterate) [IRIX, OSF/1]: Don't call the callback
on an empty interval.

ChangeLog
lib/vma-iter.c

index bea7d1e..ab1ad1e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-01-24  Bruno Haible  <bruno@clisp.org>
+
+       vma-iter: Avoid empty intervals.
+       * lib/vma-iter.c (vma_iterate) [IRIX, OSF/1]: Don't call the callback
+       on an empty interval.
+
 2011-01-24  Jim Meyering  <meyering@redhat.com>
 
        u64: remove unnecessary #include
index 251ef75..8ef865d 100644 (file)
@@ -331,10 +331,12 @@ vma_iterate (vma_iterate_callback_fn callback, void *data)
         {
           /* Consider [start,end-1] \ [auxmap_start,auxmap_end-1]
              = [start,auxmap_start-1] u [auxmap_end,end-1].  */
-          if (callback (data, start, auxmap_start, flags))
-            break;
-          if (callback (data, auxmap_end, end, flags))
-            break;
+          if (start < auxmap_start)
+            if (callback (data, start, auxmap_start, flags))
+              break;
+          if (auxmap_end - 1 < end - 1)
+            if (callback (data, auxmap_end, end, flags))
+              break;
         }
       else
         {