mirror of https://github.com/tailix/libkernaux.git
Main: resolve FIXME
This commit is contained in:
parent
0332f66928
commit
56ec03fb71
|
@ -279,9 +279,11 @@ bool KernAux_Multiboot2_ITag_ELFSymbols_is_valid(
|
||||||
) {
|
) {
|
||||||
return (
|
return (
|
||||||
tag->base.type == KERNAUX_MULTIBOOT2_ITAG_ELF_SYMBOLS &&
|
tag->base.type == KERNAUX_MULTIBOOT2_ITAG_ELF_SYMBOLS &&
|
||||||
tag->base.size >= 16 // &&
|
tag->base.size >= 16 &&
|
||||||
// FIXME: division by zero in real-world data?
|
(
|
||||||
// (tag->base.size - 16) % tag->ent_size == 0
|
tag->ent_size == 0 ||
|
||||||
|
(tag->base.size - 16) % tag->ent_size == 0
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -522,6 +522,22 @@ tag_vbe_info_invalid_size = {
|
||||||
.vbe_mode_info = {0, 0, 0},
|
.vbe_mode_info = {0, 0, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/******************
|
||||||
|
* Tag_ELFSymbols *
|
||||||
|
******************/
|
||||||
|
|
||||||
|
static const struct KernAux_Multiboot2_ITag_ELFSymbols
|
||||||
|
tag_elf_symbols_with_zero_ent_size_valid = {
|
||||||
|
.base = {
|
||||||
|
.type = KERNAUX_MULTIBOOT2_ITAG_ELF_SYMBOLS,
|
||||||
|
.size = 16,
|
||||||
|
},
|
||||||
|
.num = 0,
|
||||||
|
.ent_size = 0,
|
||||||
|
.shndx = 0,
|
||||||
|
.reserved1 = 0,
|
||||||
|
};
|
||||||
|
|
||||||
/**************
|
/**************
|
||||||
* Multiboot2 *
|
* Multiboot2 *
|
||||||
**************/
|
**************/
|
||||||
|
@ -933,6 +949,10 @@ int main()
|
||||||
&tag_vbe_info_invalid_size.base
|
&tag_vbe_info_invalid_size.base
|
||||||
));
|
));
|
||||||
|
|
||||||
|
assert(KernAux_Multiboot2_ITagBase_is_valid(
|
||||||
|
&tag_elf_symbols_with_zero_ent_size_valid.base
|
||||||
|
));
|
||||||
|
|
||||||
// Tag_None
|
// Tag_None
|
||||||
|
|
||||||
assert(KernAux_Multiboot2_ITag_None_is_valid(&tag_none_valid));
|
assert(KernAux_Multiboot2_ITag_None_is_valid(&tag_none_valid));
|
||||||
|
@ -1095,5 +1115,12 @@ int main()
|
||||||
&tag_vbe_info_invalid_size
|
&tag_vbe_info_invalid_size
|
||||||
));
|
));
|
||||||
|
|
||||||
|
// Tag_ELFSymbols
|
||||||
|
|
||||||
|
|
||||||
|
assert(KernAux_Multiboot2_ITag_ELFSymbols_is_valid(
|
||||||
|
&tag_elf_symbols_with_zero_ent_size_valid
|
||||||
|
));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue