Skip to content

Commit a88bd15

Browse files
committed
fix(ledc): overflowed integer argument in ledc_hal_clear_left_off_fade_param
1 parent 76133bc commit a88bd15

File tree

6 files changed

+10
-1
lines changed

6 files changed

+10
-1
lines changed

components/hal/esp32c5/include/hal/ledc_ll.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "soc/ledc_reg.h"
1616
#include "soc/clk_tree_defs.h"
1717
#include "soc/pcr_struct.h"
18+
#include "soc/soc_caps.h"
1819

1920
#ifdef __cplusplus
2021
extern "C" {
@@ -369,6 +370,7 @@ static inline void ledc_ll_get_duty(ledc_dev_t *hw, ledc_mode_t speed_mode, ledc
369370
*/
370371
static inline void ledc_ll_set_fade_param_range(ledc_dev_t *hw, ledc_mode_t speed_mode, ledc_channel_t channel_num, uint8_t range, uint32_t dir, uint32_t cycle, uint32_t scale, uint32_t step)
371372
{
373+
HAL_ASSERT(range < SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX);
372374
ledc_channel_gamma_fade_param_t range_param = {
373375
.duty_inc = dir,
374376
.duty_cycle = cycle,

components/hal/esp32c6/include/hal/ledc_ll.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "soc/clk_tree_defs.h"
1717
#include "hal/assert.h"
1818
#include "esp_rom_sys.h" //for sync issue workaround
19+
#include "soc/soc_caps.h"
1920

2021
#ifdef __cplusplus
2122
extern "C" {
@@ -452,6 +453,7 @@ static inline void ledc_ll_set_duty_range_wr_addr(ledc_dev_t *hw, ledc_mode_t sp
452453
*/
453454
static inline void ledc_ll_set_fade_param_range(ledc_dev_t *hw, ledc_mode_t speed_mode, ledc_channel_t channel_num, uint8_t range, uint32_t dir, uint32_t cycle, uint32_t scale, uint32_t step)
454455
{
456+
HAL_ASSERT(range < SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX);
455457
// To workaround sync issue
456458
// This is to ensure the fade param write to the gamma_wr register would not mess up the last wr_addr
457459
ledc_ll_set_duty_range_wr_addr(hw, speed_mode, channel_num, range);

components/hal/esp32c61/include/hal/ledc_ll.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "soc/ledc_reg.h"
1616
#include "soc/clk_tree_defs.h"
1717
#include "soc/pcr_struct.h"
18+
#include "soc/soc_caps.h"
1819

1920
#ifdef __cplusplus
2021
extern "C" {
@@ -369,6 +370,7 @@ static inline void ledc_ll_get_duty(ledc_dev_t *hw, ledc_mode_t speed_mode, ledc
369370
*/
370371
static inline void ledc_ll_set_fade_param_range(ledc_dev_t *hw, ledc_mode_t speed_mode, ledc_channel_t channel_num, uint8_t range, uint32_t dir, uint32_t cycle, uint32_t scale, uint32_t step)
371372
{
373+
HAL_ASSERT(range < SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX);
372374
ledc_channel_gamma_fade_param_t range_param = {
373375
.duty_inc = dir,
374376
.duty_cycle = cycle,

components/hal/esp32h2/include/hal/ledc_ll.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "soc/clk_tree_defs.h"
1717
#include "hal/assert.h"
1818
#include "esp_rom_sys.h" //for sync issue workaround
19+
#include "soc/soc_caps.h"
1920

2021
#ifdef __cplusplus
2122
extern "C" {
@@ -450,6 +451,7 @@ static inline void ledc_ll_set_duty_range_wr_addr(ledc_dev_t *hw, ledc_mode_t sp
450451
*/
451452
static inline void ledc_ll_set_fade_param_range(ledc_dev_t *hw, ledc_mode_t speed_mode, ledc_channel_t channel_num, uint8_t range, uint32_t dir, uint32_t cycle, uint32_t scale, uint32_t step)
452453
{
454+
HAL_ASSERT(range < SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX);
453455
// To workaround sync issue
454456
// This is to ensure the fade param write to the gamma_wr register would not mess up the last wr_addr
455457
ledc_ll_set_duty_range_wr_addr(hw, speed_mode, channel_num, range);

components/hal/esp32p4/include/hal/ledc_ll.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "soc/ledc_reg.h"
1616
#include "soc/clk_tree_defs.h"
1717
#include "soc/hp_sys_clkrst_struct.h"
18+
#include "soc/soc_caps.h"
1819

1920
#ifdef __cplusplus
2021
extern "C" {
@@ -383,6 +384,7 @@ static inline void ledc_ll_get_duty(ledc_dev_t *hw, ledc_mode_t speed_mode, ledc
383384
*/
384385
static inline void ledc_ll_set_fade_param_range(ledc_dev_t *hw, ledc_mode_t speed_mode, ledc_channel_t channel_num, uint8_t range, uint32_t dir, uint32_t cycle, uint32_t scale, uint32_t step)
385386
{
387+
HAL_ASSERT(range < SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX);
386388
ledc_channel_gamma_fade_param_t range_param = {
387389
.duty_inc = dir,
388390
.duty_cycle = cycle,

components/hal/ledc_hal_iram.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ void ledc_hal_get_duty(ledc_hal_context_t *hal, ledc_channel_t channel_num, uint
3939
void ledc_hal_set_fade_param(const ledc_hal_context_t *hal, ledc_channel_t channel_num, uint32_t range, uint32_t dir, uint32_t cycle, uint32_t scale, uint32_t step)
4040
{
4141
#if SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED
42-
HAL_ASSERT(range < SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX);
4342
ledc_ll_set_fade_param_range(hal->dev, hal->speed_mode, channel_num, range, dir, cycle, scale, step);
4443
#else // !SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED
4544
HAL_ASSERT(range == 0);

0 commit comments

Comments
 (0)