]> Chaos Git - corbenik/corbenik.git/commitdiff
Fix a logic mistake (Should fix #61)
authorJon Feldman <chaos.kagami@gmail.com>
Sat, 18 Feb 2017 21:34:44 +0000 (16:34 -0500)
committerJon Feldman <chaos.kagami@gmail.com>
Sat, 18 Feb 2017 21:34:44 +0000 (16:34 -0500)
boot/firm/firm.c
boot/firm/util.c

index aa4db06e105b9d6f23a15334bf4e3aa50a05bf29..ce8831f3b2a33fe4eb4c8ddd8367d9bd92dedb62 100644 (file)
@@ -96,7 +96,6 @@ load_firm(const char *path, size_t *size_out)
     if (!memcmp(firm->magic, "FIRM", 4) && memcmp(firm->magic + 4, "DEC", 3)) {
         if (sig->console == console_n3ds) {
             if (dec_k9l(firm)) {
-                free(firm);
                 free(mem);
                 return NULL;
             }
@@ -118,7 +117,6 @@ load_firm(const char *path, size_t *size_out)
             patch_entry(firm, sig->type);
 
             if (sig->type == type_native && patch_section_keys(firm, sig->k9l)) {
-                free(firm);
                 free(mem);
                 return NULL;
             }
index d1b50f505a06fdd70671bf8f3da0b0b731ea9c48..a0f6d714fa9e55b7c55f48f2ba592fae0ed9d929 100644 (file)
@@ -155,11 +155,9 @@ extract_firm_from_ncch(ncch_h *ncch, uint8_t *titlekey, size_t size)
         return NULL;
     }
 
-    firm_h* dest = memalign(16, size);
+    memmove(ncch, firm, size);
 
-    memcpy(dest, firm, size);
-
-    return dest;
+    return (firm_h*)ncch;
 }
 
 uint8_t* key_search(uint8_t* mem, uint32_t size, uint8_t* sha256, uint8_t byte) {