libpagemap: handle zero length memory regions

/proc/pid/maps may report a zero-length memory region for a 4kB
PROT_GROWSDOWN region because it subtracts 4kB for the guard page.
Return 0 instead of -1 when this occurs, and set range_out to NULL
and len to 0.  All existing callers of pm_process_pagemap_range
will not dereference range_out if len is 0.

Bug: 14683277
Change-Id: If405651ad034dda780b93fab2dc616e177a0b917
diff --git a/libpagemap/pm_process.c b/libpagemap/pm_process.c
index d1f9bb7..dcc9a55 100644
--- a/libpagemap/pm_process.c
+++ b/libpagemap/pm_process.c
@@ -107,9 +107,15 @@
     off_t off;
     int error;
 
-    if (!proc || (low >= high) || !range_out || !len)
+    if (!proc || (low > high) || !range_out || !len)
         return -1;
 
+    if (low == high) {
+        *range_out = NULL;
+        *len = 0;
+        return 0;
+    }
+
     firstpage = low / proc->ker->pagesize;
     numpages = (high - low) / proc->ker->pagesize;