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,