Fix for linker allocator

Change-Id: I18a3f1a8515657f0deb69266184fb516a27f90e8
diff --git a/linker/linker_allocator.cpp b/linker/linker_allocator.cpp
index 60ce1ea..5738090 100644
--- a/linker/linker_allocator.cpp
+++ b/linker/linker_allocator.cpp
@@ -117,8 +117,8 @@
   }
 
   LinkerAllocatorPage* page = page_list_;
-  const uint8_t* page_ptr = reinterpret_cast<const uint8_t*>(page);
   while (page != nullptr) {
+    const uint8_t* page_ptr = reinterpret_cast<const uint8_t*>(page);
     if (block >= (page_ptr + sizeof(page->next)) && block < (page_ptr + PAGE_SIZE)) {
       return page;
     }
diff --git a/linker/tests/linker_allocator_test.cpp b/linker/tests/linker_allocator_test.cpp
index e3a91c5..0ed8252 100644
--- a/linker/tests/linker_allocator_test.cpp
+++ b/linker/tests/linker_allocator_test.cpp
@@ -96,6 +96,9 @@
     ASSERT_TRUE(allocator.alloc() != nullptr);
   }
 
+  test_struct_larger* ptr_to_free = allocator.alloc();
+  ASSERT_TRUE(ptr_to_free != nullptr);
+  allocator.free(ptr1);
 }
 
 static void protect_all() {