Misc fixes (#39)

* Fixes

* Fix OoB

* Use calloc instead of malloc for initializing the overlays
This commit is contained in:
Anghelo Carvajal 2024-06-05 22:28:22 -04:00 committed by GitHub
parent ec7e81b45d
commit 6ceb171571
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 2 deletions

View file

@ -143,9 +143,9 @@ extern "C" void unload_overlays(int32_t ram_addr, uint32_t size) {
}
void init_overlays() {
section_addresses = (int32_t *)malloc(sections_info.total_num_sections * sizeof(int32_t));
section_addresses = (int32_t *)calloc(sections_info.total_num_sections, sizeof(int32_t));
for (size_t section_index = 0; section_index < sections_info.total_num_sections; section_index++) {
for (size_t section_index = 0; section_index < sections_info.num_code_sections; section_index++) {
section_addresses[sections_info.code_sections[section_index].index] = sections_info.code_sections[section_index].ram_addr;
}

View file

@ -4,6 +4,7 @@
#include "recomp.h"
#include "sections.h"
#include "overlays.hpp"
#include "ultramodern/ultramodern.hpp"
static SectionTableEntry* code_sections = nullptr;
@ -14,5 +15,9 @@ void recomp::register_patch_section(SectionTableEntry* sections) {
}
void recomp::load_patch_functions() {
if (code_sections == nullptr) {
debug_printf("[Patch] No patch section was registered\n");
return;
}
load_special_overlay(code_sections[0], code_sections[0].ram_addr);
}