// else
page_tail = (struct shadow_page_data *)V3_Malloc(sizeof(struct shadow_page_data));
+
+ if (!page_tail) {
+ PrintError("Cannot allocate\n");
+ return NULL;
+ }
+
page_tail->page_pa = (addr_t)V3_AllocPages(1);
+ if (!page_tail->page_pa) {
+ PrintError("Cannot allocate page\n");
+ return NULL;
+ }
+
PrintDebug("Allocating new shadow Page: %p (cur_cr3=%p)\n",
(void *)(addr_t)page_tail->page_pa,
(void *)(addr_t)cur_cr3);
vtlb_state = (struct vtlb_local_state *)V3_Malloc(sizeof(struct vtlb_local_state));
+ if (!vtlb_state) {
+ PrintError("Cannot allocate\n");
+ return -1;
+ }
+
INIT_LIST_HEAD(&(vtlb_state->page_list));
state->local_impl_data = vtlb_state;