MISRAC2012-Rule-18.1_d以太网MAC问题

问题描述

我的源代码中有一个经典的以太网MAC地址代码:

#define NETIF_MAX_HWADDR_LEN 6U

u8_t hwaddr[NETIF_MAX_HWADDR_LEN];

编辑:

{{1}}

enter image description here

当我尝试在代码中进行静态分析时,所有这些行均出现此错误:

enter image description here

我该如何解决?

解决方法

MISRA检查器说您越界访问数组,显然也是如此:

#define NETIF_MAX_HWADDR_LEN 5U

u8_t hwaddr[NETIF_MAX_HWADDR_LEN];

...
netif->hwaddr[5] =  heth.Init.MACAddr[5];

数组在C语言中的索引为0。通过不声明太小的数组来解决此问题。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...