diff --git a/libs/androidfw/CursorWindow.cpp b/libs/androidfw/CursorWindow.cpp
index 915c0d7..1b8db46 100644
--- a/libs/androidfw/CursorWindow.cpp
+++ b/libs/androidfw/CursorWindow.cpp
@@ -291,11 +291,11 @@
         return INVALID_OPERATION;
     }
     size_t size = mNumColumns * kSlotSizeBytes;
-    off_t newOffset = mSlotsOffset - size;
-    if (newOffset < mAllocOffset) {
+    int32_t newOffset = mSlotsOffset - size;
+    if (newOffset < (int32_t) mAllocOffset) {
         maybeInflate();
         newOffset = mSlotsOffset - size;
-        if (newOffset < mAllocOffset) {
+        if (newOffset < (int32_t) mAllocOffset) {
             return NO_MEMORY;
         }
     }
@@ -311,7 +311,7 @@
         return INVALID_OPERATION;
     }
     size_t size = mNumColumns * kSlotSizeBytes;
-    off_t newOffset = mSlotsOffset + size;
+    size_t newOffset = mSlotsOffset + size;
     if (newOffset > mSize) {
         return NO_MEMORY;
     }
@@ -326,7 +326,7 @@
         return INVALID_OPERATION;
     }
     size_t alignedSize = (size + 3) & ~3;
-    off_t newOffset = mAllocOffset + alignedSize;
+    size_t newOffset = mAllocOffset + alignedSize;
     if (newOffset > mSlotsOffset) {
         maybeInflate();
         newOffset = mAllocOffset + alignedSize;
@@ -345,7 +345,7 @@
     // see CursorWindow_bench.cpp for more details
     void *result = static_cast<uint8_t*>(mSlotsStart)
             - (((row * mNumColumns) + column) << kSlotShift);
-    if (result < mSlotsEnd || column >= mNumColumns) {
+    if (result < mSlotsEnd || result > mSlotsStart || column >= mNumColumns) {
         LOG(ERROR) << "Failed to read row " << row << ", column " << column
                 << " from a window with " << mNumRows << " rows, " << mNumColumns << " columns";
         return nullptr;
diff --git a/libs/androidfw/tests/CursorWindow_test.cpp b/libs/androidfw/tests/CursorWindow_test.cpp
index dfcf76e..15be80c 100644
--- a/libs/androidfw/tests/CursorWindow_test.cpp
+++ b/libs/androidfw/tests/CursorWindow_test.cpp
@@ -166,6 +166,14 @@
     ASSERT_EQ(w->getFieldSlot(0, 3), nullptr);
     ASSERT_EQ(w->getFieldSlot(3, 0), nullptr);
     ASSERT_EQ(w->getFieldSlot(3, 3), nullptr);
+
+    // Can't work with invalid indexes
+    ASSERT_NE(w->putLong(-1, 0, 0xcafe), OK);
+    ASSERT_NE(w->putLong(0, -1, 0xcafe), OK);
+    ASSERT_NE(w->putLong(-1, -1, 0xcafe), OK);
+    ASSERT_EQ(w->getFieldSlot(-1, 0), nullptr);
+    ASSERT_EQ(w->getFieldSlot(0, -1), nullptr);
+    ASSERT_EQ(w->getFieldSlot(-1, -1), nullptr);
 }
 
 TEST(CursorWindowTest, Inflate) {
