Revert "Revert changes due to Null pointer dereference"

This reverts commit 8f752b7eee.
This commit is contained in:
MX 2023-04-10 18:47:20 +03:00
parent 8f752b7eee
commit c2fa8a2b18
No known key found for this signature in database
GPG key ID: 7CCC66B7DBDD1C83
4 changed files with 5 additions and 4 deletions

View file

@ -152,6 +152,7 @@ bool avr_isp_auto_set_spi_speed_start_pmode(AvrIsp* instance) {
} }
} }
} }
if(instance->spi) avr_isp_spi_sw_free(instance->spi);
return false; return false;
} }

View file

@ -198,9 +198,10 @@ bool avr_isp_worker_rw_detect_chip(AvrIspWorkerRW* instance) {
} }
avr_isp_end_pmode(instance->avr_isp); avr_isp_end_pmode(instance->avr_isp);
furi_hal_pwm_stop(FuriHalPwmOutputIdLptim2PA4);
} while(0); } while(0);
furi_hal_pwm_stop(FuriHalPwmOutputIdLptim2PA4);
if(instance->callback) { if(instance->callback) {
if(instance->chip_arr_ind > avr_isp_chip_arr_size) { if(instance->chip_arr_ind > avr_isp_chip_arr_size) {
instance->callback(instance->context, "No detect", instance->chip_detect, 0); instance->callback(instance->context, "No detect", instance->chip_detect, 0);

View file

@ -317,6 +317,7 @@ static bool avr_isp_prog_auto_set_spi_speed_start_pmode(AvrIspProg* instance) {
} }
} }
} }
if(instance->spi) avr_isp_spi_sw_free(instance->spi);
return false; return false;
} }

View file

@ -18,7 +18,6 @@ struct AvrIspSpiSw {
AvrIspSpiSw* avr_isp_spi_sw_init(AvrIspSpiSwSpeed speed) { AvrIspSpiSw* avr_isp_spi_sw_init(AvrIspSpiSwSpeed speed) {
AvrIspSpiSw* instance = malloc(sizeof(AvrIspSpiSw)); AvrIspSpiSw* instance = malloc(sizeof(AvrIspSpiSw));
instance->speed_wait_time = speed; instance->speed_wait_time = speed;
instance->miso = AVR_ISP_SPI_SW_MISO; instance->miso = AVR_ISP_SPI_SW_MISO;
instance->mosi = AVR_ISP_SPI_SW_MOSI; instance->mosi = AVR_ISP_SPI_SW_MOSI;
instance->sck = AVR_ISP_SPI_SW_SCK; instance->sck = AVR_ISP_SPI_SW_SCK;
@ -40,7 +39,6 @@ void avr_isp_spi_sw_free(AvrIspSpiSw* instance) {
furi_hal_gpio_init(instance->miso, GpioModeAnalog, GpioPullNo, GpioSpeedLow); furi_hal_gpio_init(instance->miso, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
furi_hal_gpio_init(instance->mosi, GpioModeAnalog, GpioPullNo, GpioSpeedLow); furi_hal_gpio_init(instance->mosi, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
furi_hal_gpio_init(instance->sck, GpioModeAnalog, GpioPullNo, GpioSpeedLow); furi_hal_gpio_init(instance->sck, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
free(instance); free(instance);
} }