Use wrapping_add when computing TockOS app start address so we don't panic in debug builds.
Change-Id: Ic79f58efeec51b56fb53f232a90f302d52de35d1
diff --git a/core/src/entry_point/mod.rs b/core/src/entry_point/mod.rs
index 850c213..0df0072 100644
--- a/core/src/entry_point/mod.rs
+++ b/core/src/entry_point/mod.rs
@@ -95,7 +95,9 @@
// script -- should be immediately above the stack).
let layout_header: &LayoutHeader = core::mem::transmute(app_start);
- let data_flash_start_addr = app_start + layout_header.data_sym_start;
+ // The data_sym_start value can be a negative offset, hence the need for
+ // the wrapping add.
+ let data_flash_start_addr = app_start.wrapping_add(layout_header.data_sym_start);
ptr::copy_nonoverlapping(
data_flash_start_addr as *const u8,