/* Allocate the space. */
err = grub_xnu_align_heap (GRUB_XNU_PAGESIZE);
if (err)
- return err;
+ goto fail;
err = grub_xnu_heap_malloc (neededspace, &buf0, &buf_target);
if (err)
- return err;
+ goto fail;
buf = buf0;
exthead = (struct grub_xnu_extheader *) buf;
else
err = grub_macho_readfile32 (macho, filename, buf);
if (err)
- {
- grub_macho_close (macho);
- return err;
- }
+ goto fail;
grub_macho_close (macho);
buf += machosize;
}
/* Announce to kernel */
return grub_xnu_register_memory ("Driver-", &driversnum, buf_target,
neededspace);
+fail:
+ if (macho)
+ grub_macho_close (macho);
+ return err;
}
/* Load mkext. */