Main: resolve FIXME

This commit is contained in:
Alex Kotov 2022-05-24 18:09:02 +03:00
parent 0332f66928
commit 56ec03fb71
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
2 changed files with 32 additions and 3 deletions

View File

@ -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
)
); );
} }

View File

@ -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;
} }