ABR分析缓冲区溢出 - Klockwork问题

时间:2014-01-13 14:24:53

标签: c klocwork

#include<stdio.h>
#include<string.h>

#define RPTE_TE_TNL (x)  x->pTeTnlInfo
#define RSVPTE_TNL_NAME(x)  x->au1TnlName
#define LENGTH 32
#define STRLEN(s) strlen((const char *)(s))

typedef char INT1;

unsigned short length;

struct _tTeTnlInfo
{
    unsigned char       au1TnlName[LENGTH];
}

length = unsigned short( STRLEN ((INT1 *)RSVPTE_TNL_NAME (RPTE_TE_TNL (pRsvpTeTnlInfo))) );

Klockwork在上面的行中出错 - ABR分析缓冲区溢出,'pRsvpTeTnlInfo-&gt; pTeTnlInfo-&gt; au1TnlName'的数组索引可能超出范围。大小为32的数组'pRsvpTeTnlInfo-&gt; pTeTnlInfo-&gt; au1TnlName'可以使用索引值0..INT_MAX-1。

我无法找出根本原因,为什么klocwork会出现此错误。有人可以帮助我吗?

0 个答案:

没有答案