Hi!
When an OTA Update gets cancelled / is stopped within the progress callback, then there are nullptr checks missing within OTA_Handler::Handle_Failure.
Description
- Start OTA Update by calling
OTA_Handler::Start_Firmware_Update()
OTA_Update_Callback's progress_callback calls OTA_Handler::Stop_Firmware_Update() at some point
OTA_Handler::Stop_Firmware_Update() removes the progress callback / sets the pointer to nullptr
OTA_Handler::Process_Firmware_Packet correctly notices that m_fw_callback is a nullptr and calls OTA_Handler::Handle_Failure
OTA_Handler::Handle_Failure does not notice that m_fw_callback is a nullptr, this raises an exception and the app crashes
Proposed Fix
Check m_fw_callback == nullptr in OTA_Handler::Handle_Failure before calling m_fw_callback->Call_Callback.