Commit Graph

102 Commits

Author SHA1 Message Date
Mintsuki
e6dfe48a4b protos/multiboot: Allow menu recovery on overflow panics 2026-04-06 19:04:22 +02:00
Mintsuki
b0152c9a67 lib/elf: Validate section header bounds in elf_section_hdr_info functions 2026-04-02 22:21:54 +02:00
Mintsuki
5156d1bd51 protos/multiboot: Check for overflow in load_size + bss_size 2026-04-02 22:21:54 +02:00
Mintsuki
b699192d0d protos/multiboot2: Validate header tag sizes before casting 2026-04-02 22:21:54 +02:00
Mintsuki
91e5e5668f lib/elf: Add file_size parameter to elf_bits for bounds checking 2026-04-02 22:21:54 +02:00
Mintsuki
de46c9523a protos/multiboot2: Fix GCC build error with break in statement expression 2026-04-02 02:00:22 +02:00
Mintsuki
ca253330a8 lib/elsewhere: Add bounds check to elsewhere_append 2026-04-02 01:44:58 +02:00
Mintsuki
1b5b8e4620 misc: Add CHECKED_MUL macro, use it for all overflow-checked multiplications 2026-04-02 01:44:58 +02:00
Mintsuki
eb071a0121 misc: Add overflow checking to ALIGN_UP and DIV_ROUNDUP macros 2026-04-02 01:44:58 +02:00
Mintsuki
cc586e6cc0 misc: Use CHECKED_ADD for overflow-checked additions 2026-03-31 15:31:50 +02:00
Mintsuki
b29b11ce6d Reapply "lib/fb: Add preserve_screen option to skip fb_clear on init"
This reverts commit 12841527e9.
2026-03-30 19:44:19 +02:00
Mintsuki
12841527e9 Revert "lib/fb: Add preserve_screen option to skip fb_clear on init"
This reverts commit 2e2fc63628.
2026-03-30 09:16:32 +02:00
Mintsuki
2e2fc63628 lib/fb: Add preserve_screen option to skip fb_clear on init 2026-03-23 08:34:14 +01:00
Mintsuki
769aaf106a protos/multiboot: Try to disable x2APIC before kernel entry 2026-02-22 18:29:01 +01:00
Mintsuki
db5c4fd991 sys/iommu: Disable Intel VT-d and AMD-Vi IOMMUs before kernel entry 2026-02-20 03:47:18 +01:00
Mintsuki
a53ffcbce5 protos/multiboot2: Validate section_entry_size against expected struct size 2026-02-09 13:02:39 +01:00
Mintsuki
12ca572340 protos/multiboot: Cast size_t to uint32_t for custom printf %u format 2026-02-09 13:02:39 +01:00
Mintsuki
c34f25350b protos/multiboot2: Guard max_addr - length underflow in relocation preference 2026-02-09 13:02:38 +01:00
Mintsuki
d3856efdc6 protos/multiboot2: Adjust ELF section sh_addr by reloc_slide after relocation 2026-02-09 13:02:38 +01:00
Mintsuki
6f43fc13cb protos/multiboot2: Fix unsigned underflow in relocatable descent loop 2026-02-09 13:02:38 +01:00
Mintsuki
a08825aeb6 protos/multiboot2: Use correct framebuffer tag size for EGA text mode 2026-02-09 13:02:38 +01:00
Mintsuki
a37c0ea563 protos/multiboot2: Implement relocatable preference=2 (prefer highest) 2026-02-09 13:02:38 +01:00
Mintsuki
632cbc986d protos/multiboot2: Warn on EFI_BS tag and reject if required 2026-02-09 13:02:38 +01:00
Mintsuki
850e13532d protos/multiboot2: Add LOAD_BASE_ADDR and NETWORK to info request switch 2026-02-09 13:02:38 +01:00
Mintsuki
10c2413b68 protos/multiboot2: Accept EFI system table and image handle info requests 2026-02-09 13:02:38 +01:00
Mintsuki
254c90928b protos/multiboot2: Validate architecture field in header 2026-02-09 13:02:38 +01:00
Mintsuki
87cd7211af protos/multiboot2: Fix SMBIOS tag and module alignment budget, validate header_length 2026-02-09 13:02:38 +01:00
Mintsuki
095cf5ef79 lib/elf: Validate p_offset + p_filesz against file size in all ELF loaders 2026-02-09 13:02:38 +01:00
Mintsuki
49d4f335e7 protos/multiboot: Validate load_size against kernel file size 2026-02-09 13:02:38 +01:00
Mintsuki
7d66f97c02 protos/multiboot2: Reject relocatable tag with align=0 2026-02-09 13:02:38 +01:00
Mintsuki
5f70fea0f4 multiboot2: Add bounds validation for ELF section headers 2026-01-13 17:37:01 +01:00
Mintsuki
0af1b2b155 multiboot2: Add tag size validation to prevent infinite loop 2026-01-13 01:03:08 +01:00
Mintsuki
5736dc1b98 multiboot2: Fix SMBIOS tag size to include table data length 2026-01-12 01:46:18 +01:00
Mintsuki
7d6f5b4adf multiboot2: Validate tag size before subtraction 2026-01-11 23:45:22 +01:00
Mintsuki
65b261c28a multiboot1,multiboot2: Add bounds check to header search 2026-01-04 18:31:09 +01:00
Mintsuki
8336d9ac68 protos/multiboot2: Add address tag validation 2025-12-26 14:15:07 +01:00
Mintsuki
80912a3d1f protos/multiboot2: Ignore top-down relocation hint as we do not properly support it 2025-03-31 02:33:54 +02:00
Mintsuki
c8cdc9e051 protos/multiboot2: Panic if EFI64 entry is required, else ignore it 2025-03-31 02:32:19 +02:00
mintsuki
da43c70a2d protos: Reduce or remove mentions of 'kernel' where unnecessary
This also introduces limine.h API revision 2
2024-12-05 09:31:59 +01:00
monkuous
99c94dddfc protos/multiboot2: use unsigned relocated_base 2024-09-17 22:35:15 +02:00
monkuous
6bdf6c3e58 protos/multiboot2: use signed integers for relocation 2024-09-17 22:24:32 +02:00
monkuous
337b15089f protos/multiboot2: fix incorrect calculation of reloc_slide 2024-09-17 14:41:37 +02:00
monkuous
08812292ca protos/multiboot2: fix ordering of ALIGN_* macro parameters 2024-09-17 14:39:41 +02:00
mintsuki
15f05a8b82 protos: Reduce protocol side MEMMAP_MAX values 2024-09-04 02:09:04 +02:00
Philipp Schuster
63d29af182 multiboot2: fix efi{32,64]_ih generation 2024-05-22 23:06:06 +02:00
Philipp Schuster
b715948575 misc: init typos for spell checking 2024-04-05 16:42:15 +02:00
Philipp Schuster
1407f48af1 multiboot2: better logging of unknown and unsupported tags 2024-01-31 16:17:18 +01:00
Philipp Schuster
f5c449ac00 multiboot2: don't fail on 0x9 tag when 0x3 is available
A kernel can define multiple entries. Even if they are marked as required,
it makes no sense to panic when there is a valid and expected alternative.

Further, this aligns the behavior with GRUB2.

This solution is however simple, as it expects that all tags appear in
natural order. However, every developer that is sane will order them
naturally.
2024-01-31 16:17:18 +01:00
mintsuki
40313b25ec multiboot2: Add support for console flags header tag 2023-12-07 00:31:45 +01:00
mintsuki
d527109ca8 multiboot2: Fix some warnings discovered by GCC 2023-12-07 00:31:45 +01:00