Add Elf/Phdr/Scn alloc/destroy
[centaur.git] / src / libelfu / modelops / fromFile.c
index 9671b5fc0f402858ef3f53bb58ffa5ef6637dae0..e19df7b42f18e8a35416732aff8ba100695dcd2b 100644 (file)
@@ -290,19 +290,11 @@ ElfuElf* elfu_mFromElf(Elf *e)
     goto ERROR;
   }
 
-  me = malloc(sizeof(ElfuElf));
+  me = elfu_mElfAlloc();
   if (!me) {
-    ELFU_WARN("elfu_mFromElf: malloc() failed for ElfuElf.\n");
     goto ERROR;
   }
 
-
-  /* General stuff */
-  CIRCLEQ_INIT(&me->phdrList);
-  CIRCLEQ_INIT(&me->orphanScnList);
-  me->shstrtab = NULL;
-  me->symtab = NULL;
-
   me->elfclass = gelf_getclass(e);
   assert(me->elfclass != ELFCLASSNONE);
   assert(gelf_getehdr(e, &me->ehdr) == &me->ehdr);
@@ -473,7 +465,7 @@ ElfuElf* elfu_mFromElf(Elf *e)
     free(secArray);
   }
   if (me) {
-    // TODO: Free data structures
+    elfu_mElfDestroy(me);
   }
 
   ELFU_WARN("elfu_mFromElf: Failed to load file.\n");