commit | 91fc40240e52fc0435f8d136107e06dc1be4b50e | [log] [tgz] |
---|---|---|
author | Harald Welte <laforge@gnumonks.org> | Fri Mar 03 01:05:22 2017 +0100 |
committer | Harald Welte <laforge@gnumonks.org> | Fri Mar 03 01:05:22 2017 +0100 |
tree | bec5bbc449ca22e393be5772349c5cf03a90efb8 | |
parent | b04f4f0ee8fdcc90e5a77c8300ae0b87745f469d [diff] |
DFU: make sure to properly initialize g_dfu pointer before using it
diff --git a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h index dd0e5e2..4af3e3b 100644 --- a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h +++ b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h
@@ -97,6 +97,8 @@ unsigned int total_bytes; }; +/* RAM address for this magic value above */ +extern struct dfudata _g_dfu; extern struct dfudata *g_dfu; void set_usb_serial_str(const uint8_t *serial_usbstr);
diff --git a/firmware/libboard/common/source/board_cstartup_gnu.c b/firmware/libboard/common/source/board_cstartup_gnu.c index bc89b1b..3d92d2f 100644 --- a/firmware/libboard/common/source/board_cstartup_gnu.c +++ b/firmware/libboard/common/source/board_cstartup_gnu.c
@@ -154,6 +154,9 @@ #if defined(BOARD_USB_DFU) && defined(APPLICATION_dfu) + /* we are before the text segment has been relocated, so g_dfu is + * not initialized yet */ + g_dfu = &_g_dfu; if (g_dfu->magic != USB_DFU_MAGIC) { BootIntoApp(); /* Infinite loop */