fix (ELF): removed field alignment from 'elf_mapping_T'
This commit is contained in:
parent
adb457de01
commit
6d41f659d3
|
@ -32,7 +32,6 @@ typedef struct {
|
||||||
uint64_t offset_virtual;
|
uint64_t offset_virtual;
|
||||||
uint64_t length_file;
|
uint64_t length_file;
|
||||||
uint64_t length_virtual;
|
uint64_t length_virtual;
|
||||||
uint64_t alignment;
|
|
||||||
} elf_mapping_T;
|
} elf_mapping_T;
|
||||||
|
|
||||||
void elf_mappings_apply(elf_mapping_T* mappings, uint64_t num_mappings, uint8_t* buffer, void* base, page_map_T* page_map);
|
void elf_mappings_apply(elf_mapping_T* mappings, uint64_t num_mappings, uint8_t* buffer, void* base, page_map_T* page_map);
|
||||||
|
|
|
@ -169,8 +169,7 @@ elf_executable_T* elf_executable_create(uint8_t* buffer) {
|
||||||
.offset_file = segments[i].offset,
|
.offset_file = segments[i].offset,
|
||||||
.offset_virtual = segments[i].address_virtual,
|
.offset_virtual = segments[i].address_virtual,
|
||||||
.length_file = segments[i].length_file,
|
.length_file = segments[i].length_file,
|
||||||
.length_virtual = segments[i].length_memory,
|
.length_virtual = segments[i].length_memory
|
||||||
.alignment = segments[i].align
|
|
||||||
};
|
};
|
||||||
mappings_index++;
|
mappings_index++;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -41,7 +41,8 @@ void elf_mapping_apply(elf_mapping_T* mapping, uint8_t* buffer, void* base, page
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mapping->length_virtual > mapping->length_file) {
|
if (mapping->length_virtual > mapping->length_file) {
|
||||||
memory_set(virtual_address + mapping->length_file, 0, mapping->length_virtual - mapping->length_file);
|
log(LOG_INFO, " zeroing out area: 0x%x <--> 0x%x", virtual_address + mapping->length_file, virtual_address + mapping->length_virtual);
|
||||||
|
memory_set(virtual_address + mapping->length_file, 0, mapping->length_virtual - mapping->length_file-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
log(LOG_INFO, "Copying data 0x%x --[%d]-> 0x%x", &buffer[mapping->offset_file], mapping->length_file, virtual_address);
|
log(LOG_INFO, "Copying data 0x%x --[%d]-> 0x%x", &buffer[mapping->offset_file], mapping->length_file, virtual_address);
|
||||||
|
|
Loading…
Reference in New Issue