Add support for offsets when checking signatures
This commit is contained in:
parent
631a0a7203
commit
07db57ce71
|
@ -54,11 +54,12 @@ int multiboot_load_module(ukMultibootMod const * mod, unsigned char * elfclass,
|
||||||
{
|
{
|
||||||
int (*loader)(ukMultibootMod const * mod,
|
int (*loader)(ukMultibootMod const * mod,
|
||||||
unsigned char * elfclass, vaddr_t * entrypoint);
|
unsigned char * elfclass, vaddr_t * entrypoint);
|
||||||
|
off_t offset;
|
||||||
char * signature;
|
char * signature;
|
||||||
size_t signature_len;
|
size_t signature_len;
|
||||||
} loaders[] =
|
} loaders[] =
|
||||||
{
|
{
|
||||||
{ _load_module_elf, ELFMAG, SELFMAG }
|
{ _load_module_elf, 0x0, ELFMAG, SELFMAG }
|
||||||
};
|
};
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
|
@ -76,7 +77,8 @@ int multiboot_load_module(ukMultibootMod const * mod, unsigned char * elfclass,
|
||||||
{
|
{
|
||||||
if(len < loaders[i].signature_len)
|
if(len < loaders[i].signature_len)
|
||||||
continue;
|
continue;
|
||||||
if(memcmp((void *)mod->start, loaders[i].signature,
|
if(memcmp((void *)(mod->start + loaders[i].offset),
|
||||||
|
loaders[i].signature,
|
||||||
loaders[i].signature_len) == 0)
|
loaders[i].signature_len) == 0)
|
||||||
return loaders[i].loader(mod, elfclass, entrypoint);
|
return loaders[i].loader(mod, elfclass, entrypoint);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user