Skip to content

Commit 85b9c14

Browse files
Loader: add check for endianness in header read
1 parent 69260c8 commit 85b9c14

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

loader/main.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ LOG_MODULE_REGISTER(sketch);
1515
#include <zephyr/shell/shell.h>
1616
#include <zephyr/shell/shell_uart.h>
1717

18+
#include <zephyr/sys/byteorder.h>
19+
1820
#include <stdlib.h>
1921
#include <zephyr/drivers/gpio.h>
2022
#include <zephyr/drivers/uart.h>
@@ -112,7 +114,13 @@ static int loader(const struct shell *sh) {
112114
}
113115

114116
bool sketch_valid = true;
117+
115118
struct sketch_header_v1 *sketch_hdr = (struct sketch_header_v1 *)(header + 7);
119+
120+
// Ensure endianness is preserved in fields of header with more than 1 byte
121+
sketch_hdr->len = sys_le32_to_cpu(sketch_hdr.len);
122+
sketch_hdr->magic = sys_le16_to_cpu(sketch_hdr.magic);
123+
116124
if (sketch_hdr->ver != 0x1 || sketch_hdr->magic != 0x2341) {
117125
printk("Invalid sketch header\n");
118126
sketch_valid = false;

0 commit comments

Comments
 (0)