Skip to content

Commit 7bec788

Browse files
committed
opta: fix crash when constuctors use qspi
1 parent 8e481e1 commit 7bec788

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

variants/OPTA/variant.cpp

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -275,20 +275,18 @@ class SecureQSPIFBlockDevice: public QSPIFBlockDevice {
275275
static uint8_t *_boardInfo = (uint8_t*)(0x801F000);
276276
static bool has_otp_info = false;
277277

278-
static SecureQSPIFBlockDevice secure_root;
279-
280278
bool getSecureFlashData() {
281-
static OptaBoardInfo* info = new OptaBoardInfo();
279+
static OptaBoardInfo info;
282280
uint8_t temp_buf[sizeof(OptaBoardInfo) + 1];
281+
int ret = 0;
282+
static SecureQSPIFBlockDevice secure_root;
283283
secure_root.init();
284284
// read secure sector 2 ( address 1 << 13 )
285-
auto ret = secure_root.readSecure(temp_buf, (1 << 13), sizeof(OptaBoardInfo));
286-
memcpy(info, &temp_buf[1], sizeof(OptaBoardInfo));
287-
if (info->magic == OTP_QSPI_MAGIC) {
288-
_boardInfo = (uint8_t*)info;
285+
ret = secure_root.readSecure(temp_buf, (1 << 13), sizeof(OptaBoardInfo));
286+
memcpy(&info, &temp_buf[1], sizeof(OptaBoardInfo));
287+
if (info.magic == OTP_QSPI_MAGIC) {
288+
_boardInfo = (uint8_t*)&info;
289289
has_otp_info = true;
290-
} else {
291-
delete info;
292290
}
293291
secure_root.deinit();
294292
return ret == 0;

0 commit comments

Comments
 (0)