diff --git a/arch/arm/src/at32/at32_can.c b/arch/arm/src/at32/at32_can.c index 89b6dc43dab..1865f9cf97b 100644 --- a/arch/arm/src/at32/at32_can.c +++ b/arch/arm/src/at32/at32_can.c @@ -973,7 +973,7 @@ static int at32can_ioctl(struct can_dev_s *dev, int cmd, uint32_t regval; DEBUGASSERT(bt != NULL); - DEBUGASSERT(bt->bt_baud < AT32_PCLK1_FREQUENCY); + DEBUGASSERT(bt->bt_baud > 0 && bt->bt_baud < AT32_PCLK1_FREQUENCY); DEBUGASSERT(bt->bt_sjw > 0 && bt->bt_sjw <= 4); DEBUGASSERT(bt->bt_tseg1 > 0 && bt->bt_tseg1 <= 16); DEBUGASSERT(bt->bt_tseg2 > 0 && bt->bt_tseg2 <= 8); diff --git a/arch/arm/src/common/stm32/stm32_can_m3m4_v1.c b/arch/arm/src/common/stm32/stm32_can_m3m4_v1.c index 90959870c49..10fe28be2c8 100644 --- a/arch/arm/src/common/stm32/stm32_can_m3m4_v1.c +++ b/arch/arm/src/common/stm32/stm32_can_m3m4_v1.c @@ -971,7 +971,8 @@ static int stm32can_ioctl(struct can_dev_s *dev, int cmd, uint32_t regval; DEBUGASSERT(bt != NULL); - DEBUGASSERT(bt->bt_baud < STM32_PCLK1_FREQUENCY); + DEBUGASSERT(bt->bt_baud > 0 && + bt->bt_baud < STM32_PCLK1_FREQUENCY); DEBUGASSERT(bt->bt_sjw > 0 && bt->bt_sjw <= 4); DEBUGASSERT(bt->bt_tseg1 > 0 && bt->bt_tseg1 <= 16); DEBUGASSERT(bt->bt_tseg2 > 0 && bt->bt_tseg2 <= 8); diff --git a/arch/arm/src/common/stm32/stm32_fdcan_m0_v1.c b/arch/arm/src/common/stm32/stm32_fdcan_m0_v1.c index 8c72dd6b209..1cb8fb9a9a4 100644 --- a/arch/arm/src/common/stm32/stm32_fdcan_m0_v1.c +++ b/arch/arm/src/common/stm32/stm32_fdcan_m0_v1.c @@ -1832,7 +1832,8 @@ static int fdcan_ioctl(struct can_dev_s *dev, int cmd, unsigned long arg) uint8_t state; DEBUGASSERT(bt != NULL); - DEBUGASSERT(bt->bt_baud < STM32_FDCANCLK_FREQUENCY); + DEBUGASSERT(bt->bt_baud > 0 && + bt->bt_baud < STM32_FDCANCLK_FREQUENCY); DEBUGASSERT(bt->bt_sjw > 0 && bt->bt_sjw <= 16); DEBUGASSERT(bt->bt_tseg1 > 1 && bt->bt_tseg1 <= 64); DEBUGASSERT(bt->bt_tseg2 > 0 && bt->bt_tseg2 <= 16); diff --git a/arch/arm/src/common/stm32/stm32_fdcan_m3m4_v1.c b/arch/arm/src/common/stm32/stm32_fdcan_m3m4_v1.c index 4e23a563b1c..300545fefee 100644 --- a/arch/arm/src/common/stm32/stm32_fdcan_m3m4_v1.c +++ b/arch/arm/src/common/stm32/stm32_fdcan_m3m4_v1.c @@ -2136,7 +2136,8 @@ static int fdcan_ioctl(struct can_dev_s *dev, int cmd, unsigned long arg) uint8_t state; DEBUGASSERT(bt != NULL); - DEBUGASSERT(bt->bt_baud < STM32_FDCANCLK_FREQUENCY); + DEBUGASSERT(bt->bt_baud > 0 && + bt->bt_baud < STM32_FDCANCLK_FREQUENCY); DEBUGASSERT(bt->bt_sjw > 0 && bt->bt_sjw <= 16); DEBUGASSERT(bt->bt_tseg1 > 1 && bt->bt_tseg1 <= 64); DEBUGASSERT(bt->bt_tseg2 > 0 && bt->bt_tseg2 <= 16); diff --git a/arch/arm/src/sama5/sam_mcan.c b/arch/arm/src/sama5/sam_mcan.c index 7860c0a5afa..0b515fec719 100644 --- a/arch/arm/src/sama5/sam_mcan.c +++ b/arch/arm/src/sama5/sam_mcan.c @@ -2721,7 +2721,8 @@ static int mcan_ioctl(struct can_dev_s *dev, int cmd, unsigned long arg) uint8_t state; DEBUGASSERT(bt != NULL); - DEBUGASSERT(bt->bt_baud < SAMA5_MCANCLK_FREQUENCY); + DEBUGASSERT(bt->bt_baud > 0 && + bt->bt_baud < SAMA5_MCANCLK_FREQUENCY); DEBUGASSERT(bt->bt_sjw > 0 && bt->bt_sjw <= 16); DEBUGASSERT(bt->bt_tseg1 > 1 && bt->bt_tseg1 <= 64); DEBUGASSERT(bt->bt_tseg2 > 0 && bt->bt_tseg2 <= 16); diff --git a/arch/arm/src/samv7/sam_mcan.c b/arch/arm/src/samv7/sam_mcan.c index 847a25d31c5..164bba5d0a4 100644 --- a/arch/arm/src/samv7/sam_mcan.c +++ b/arch/arm/src/samv7/sam_mcan.c @@ -2789,7 +2789,8 @@ static int mcan_ioctl(struct can_dev_s *dev, int cmd, unsigned long arg) uint8_t state; DEBUGASSERT(bt != NULL); - DEBUGASSERT(bt->bt_baud < SAMV7_MCANCLK_FREQUENCY); + DEBUGASSERT(bt->bt_baud > 0 && + bt->bt_baud < SAMV7_MCANCLK_FREQUENCY); DEBUGASSERT(bt->bt_sjw > 0 && bt->bt_sjw <= 16); DEBUGASSERT(bt->bt_tseg1 > 1 && bt->bt_tseg1 <= 64); DEBUGASSERT(bt->bt_tseg2 > 0 && bt->bt_tseg2 <= 16); diff --git a/arch/arm/src/stm32f7/stm32_can.c b/arch/arm/src/stm32f7/stm32_can.c index 2d571c61b8d..2df5a048649 100644 --- a/arch/arm/src/stm32f7/stm32_can.c +++ b/arch/arm/src/stm32f7/stm32_can.c @@ -912,7 +912,8 @@ static int stm32can_ioctl(struct can_dev_s *dev, int cmd, uint32_t regval; DEBUGASSERT(bt != NULL); - DEBUGASSERT(bt->bt_baud < STM32_PCLK1_FREQUENCY); + DEBUGASSERT(bt->bt_baud > 0 && + bt->bt_baud < STM32_PCLK1_FREQUENCY); DEBUGASSERT(bt->bt_sjw > 0 && bt->bt_sjw <= 4); DEBUGASSERT(bt->bt_tseg1 > 0 && bt->bt_tseg1 <= 16); DEBUGASSERT(bt->bt_tseg2 > 0 && bt->bt_tseg2 <= 8); diff --git a/arch/arm/src/stm32h5/stm32_fdcan.c b/arch/arm/src/stm32h5/stm32_fdcan.c index 639f0e7e1d9..1be0ff65cbc 100644 --- a/arch/arm/src/stm32h5/stm32_fdcan.c +++ b/arch/arm/src/stm32h5/stm32_fdcan.c @@ -2007,7 +2007,8 @@ static int fdcan_ioctl(struct can_dev_s *dev, int cmd, unsigned long arg) uint8_t state; DEBUGASSERT(bt != NULL); - DEBUGASSERT(bt->bt_baud < STM32_FDCANCLK_FREQUENCY); + DEBUGASSERT(bt->bt_baud > 0 && + bt->bt_baud < STM32_FDCANCLK_FREQUENCY); DEBUGASSERT(bt->bt_sjw > 0 && bt->bt_sjw <= 16); DEBUGASSERT(bt->bt_tseg1 > 1 && bt->bt_tseg1 <= 64); DEBUGASSERT(bt->bt_tseg2 > 0 && bt->bt_tseg2 <= 16); diff --git a/arch/arm/src/stm32l4/stm32l4_can.c b/arch/arm/src/stm32l4/stm32l4_can.c index 9d6231f4f1f..84225c4cc56 100644 --- a/arch/arm/src/stm32l4/stm32l4_can.c +++ b/arch/arm/src/stm32l4/stm32l4_can.c @@ -848,7 +848,8 @@ static int stm32l4can_ioctl(struct can_dev_s *dev, int cmd, uint32_t regval; DEBUGASSERT(bt != NULL); - DEBUGASSERT(bt->bt_baud < STM32_PCLK1_FREQUENCY); + DEBUGASSERT(bt->bt_baud > 0 && + bt->bt_baud < STM32_PCLK1_FREQUENCY); DEBUGASSERT(bt->bt_sjw > 0 && bt->bt_sjw <= 4); DEBUGASSERT(bt->bt_tseg1 > 0 && bt->bt_tseg1 <= 16); DEBUGASSERT(bt->bt_tseg2 > 0 && bt->bt_tseg2 <= 8); diff --git a/arch/arm/src/tiva/common/tiva_can.c b/arch/arm/src/tiva/common/tiva_can.c index 57e5a96cec7..a28eb70f3e3 100644 --- a/arch/arm/src/tiva/common/tiva_can.c +++ b/arch/arm/src/tiva/common/tiva_can.c @@ -971,11 +971,13 @@ static int tivacan_ioctl(struct can_dev_s *dev, int cmd, timing.tseg1 = bt->bt_tseg1; timing.tseg2 = bt->bt_tseg2; timing.sjw = bt->bt_sjw; + DEBUGASSERT(timing.tseg1 <= 16 && timing.tseg1 >= 1); + DEBUGASSERT(timing.tseg2 <= 8 && timing.tseg2 >= 1); + DEBUGASSERT(timing.sjw <= 4 && timing.sjw >= 1); + DEBUGASSERT(bt->bt_baud > 0); + timing.prescaler = SYSCLK_FREQUENCY / (bt->bt_baud * (bt->bt_tseg1 + bt->bt_tseg2 + 1)); - DEBUGASSERT(timing.tseg1 <= 16 && timing.tseg1 >= 1); - DEBUGASSERT(timing.tseg2 <= 8 && timing.tseg1 >= 1); - DEBUGASSERT(timing.sjw <= 4 && timing.sjw >= 1); DEBUGASSERT(timing.prescaler <= 1024 && timing.prescaler >= 1); tivacan_bittiming_set(dev, &timing); diff --git a/drivers/can/mcp2515.c b/drivers/can/mcp2515.c index 3246da490d3..e31b49fbee3 100644 --- a/drivers/can/mcp2515.c +++ b/drivers/can/mcp2515.c @@ -1526,7 +1526,8 @@ static int mcp2515_ioctl(FAR struct can_dev_s *dev, int cmd, uint8_t regval; DEBUGASSERT(bt != NULL); - DEBUGASSERT(bt->bt_baud < MCP2515_CANCLK_FREQUENCY); + DEBUGASSERT(bt->bt_baud > 0 && + bt->bt_baud < MCP2515_CANCLK_FREQUENCY); DEBUGASSERT(bt->bt_sjw > 0 && bt->bt_sjw <= 4); DEBUGASSERT(bt->bt_tseg1 > 1 && bt->bt_tseg1 <= 16); DEBUGASSERT(bt->bt_tseg2 > 1 && bt->bt_tseg2 <= 8);