1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
From: William Vinnicombe <william.vinnicombe@raspberrypi.com>
Date: Sun, 16 Mar 2025 23:40:26 +0100
Subject: Fix UF2 creation on big-endian systems
Bug: https://github.com/raspberrypi/picotool/issues/104
---
elf/elf_file.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/elf/elf_file.cpp b/elf/elf_file.cpp
index 18e20d9..a17bf5c 100644
--- a/elf/elf_file.cpp
+++ b/elf/elf_file.cpp
@@ -210,14 +210,14 @@ void elf_file::flatten(void) {
elf_bytes.resize(std::max(eh.ph_offset + sizeof(elf32_ph_entry) * eh.ph_num, elf_bytes.size()));
auto ph_entries_out = ph_entries;
- for (auto ph : ph_entries_out) {
+ for (auto &ph : ph_entries_out) {
ph_le(ph); // swap to LE for writing
}
memcpy(&elf_bytes[eh.ph_offset], &ph_entries_out[0], sizeof(elf32_ph_entry) * eh.ph_num);
elf_bytes.resize(std::max(eh.sh_offset + sizeof(elf32_sh_entry) * eh.sh_num, elf_bytes.size()));
auto sh_entries_out = sh_entries;
- for (auto sh : sh_entries_out) {
+ for (auto &sh : sh_entries_out) {
sh_le(sh); // swap to LE for writing
}
memcpy(&elf_bytes[eh.sh_offset], &sh_entries_out[0], sizeof(elf32_sh_entry) * eh.sh_num);
@@ -254,7 +254,7 @@ void elf_file::read_sh(void) {
if (eh.sh_num) {
sh_entries.resize(eh.sh_num);
read_bytes(eh.sh_offset, sizeof(elf32_sh_entry) * eh.sh_num, &sh_entries[0]);
- for (auto sh : sh_entries) {
+ for (auto &sh : sh_entries) {
sh_he(sh); // swap to Host for processing
}
}
@@ -377,7 +377,7 @@ void elf_file::read_ph(void) {
if (eh.ph_num) {
ph_entries.resize(eh.ph_num);
read_bytes(eh.ph_offset, sizeof(elf32_ph_entry) * eh.ph_num, &ph_entries[0]);
- for (auto ph : ph_entries) {
+ for (auto &ph : ph_entries) {
ph_he(ph); // swap to Host for processing
}
}
|