return 0;
if (grub_file_seek (elf->file, elf->ehdr.ehdrXX.e_shoff) == (grub_off_t) -1)
- return 0;
+ goto fail;
if (grub_file_read (elf->file, s0, shsize) != (grub_ssize_t) shsize)
- return 0;
+ goto fail;
s = (Elf_Shdr *) ((char *) s0 + elf->ehdr.ehdrXX.e_shstrndx * shentsize);
stroff = s->sh_offset;
if (grub_file_read (elf->file, name, sizeof (name)) != (grub_ssize_t) sizeof (name))
{
if (grub_errno)
- return grub_errno;
+ goto fail;
continue;
}
if (grub_memcmp (name, ".note.netbsd.ident",
sizeof(".note.netbsd.ident")) != 0)
continue;
+ grub_free (s0);
return 1;
}
+ fail:
+ grub_free (s0);
return 0;
}