char * grub_util_read_image (const char *path) { char *img; FILE *fp; size_t size; grub_util_info ("reading %s", path); size = grub_util_get_image_size (path); img = (char *) xmalloc (size); fp = fopen (path, "rb"); if (! fp) grub_util_error (_("cannot open `%s': %s"), path, strerror (errno)); if (fread (img, 1, size, fp) != size) grub_util_error (_("cannot read `%s': %s"), path, strerror (errno)); fclose (fp); return img; }
int main (int argc, char **argv) { size_t module_size; unsigned arch; char *module_img; if (argc != 3) { fprintf (stderr, "usage: %s FILE ARCH\n", argv[0]); return 1; } for (arch = 0; arch < ARRAY_SIZE(archs); arch++) if (strcmp(archs[arch].name, argv[2]) == 0) break; if (arch == ARRAY_SIZE(archs)) grub_util_error("unknown arch: %s", argv[2]); module_size = grub_util_get_image_size (argv[1]); module_img = grub_util_read_image (argv[1]); if (archs[arch].voidp_sizeof == 8) grub_module_verify64(module_img, module_size, &archs[arch]); else grub_module_verify32(module_img, module_size, &archs[arch]); return 0; }
void grub_util_load_image (const char *path, char *buf) { FILE *fp; size_t size; grub_util_info ("reading %s", path); size = grub_util_get_image_size (path); fp = fopen (path, "rb"); if (! fp) grub_util_error ("cannot open %s", path); if (fread (buf, 1, size, fp) != size) grub_util_error ("cannot read %s", path); fclose (fp); }
char * grub_util_read_image (const char *path) { char *img; FILE *fp; size_t size; grub_util_info ("reading %s", path); size = grub_util_get_image_size (path); img = (char *) xmalloc (size); fp = fopen (path, "rb"); if (! fp) grub_util_error ("cannot open %s", path); grub_util_read_at (img, size, 0, fp); fclose (fp); return img; }