Temporarily return for bad free.

When trying to free a specific type of bad pointer, simply return
do not abort. This is to workaround a bug that isn't fully understood
yet.

Bug: 21873627
Change-Id: I785f1a6c6d79019740ed270d307016c44c1a8576
diff --git a/android/include/libc_logging.h b/android/include/libc_logging.h
index 19c2cfe..876c5c4 100644
--- a/android/include/libc_logging.h
+++ b/android/include/libc_logging.h
@@ -32,4 +32,7 @@
 /* Convert this to an abort for jemalloc tests. */
 #define __libc_fatal(format, ...) abort()
 
+/* Convert this to a nop. */
+#define __libc_fatal_no_abort(format, ...)
+
 #endif  /* _JEMALLOC_LIBC_LOGGING_H */
diff --git a/include/jemalloc/internal/arena.h b/include/jemalloc/internal/arena.h
index 0209e61..c846103 100644
--- a/include/jemalloc/internal/arena.h
+++ b/include/jemalloc/internal/arena.h
@@ -1165,7 +1165,8 @@
 #if defined(__ANDROID__)
 		/* Verify the ptr is actually in the chunk. */
 		if (unlikely(pageind < map_bias || pageind >= chunk_npages)) {
-			__libc_fatal("Invalid address %p passed to free: invalid page index", ptr);
+			__libc_fatal_no_abort("Invalid address %p passed to free: invalid page index", ptr);
+			return;
 		}
 #endif
 		mapbits = arena_mapbits_get(chunk, pageind);