0
#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 Analyze Buffer overflow, array index of 'pRsvpTeTnlInfo->pTeTnlInfo->au1TnlName' may be out of bounds. サイズ 32 の配列 'pRsvpTeTnlInfo->pTeTnlInfo->au1TnlName' は、インデックス値 0..INT_MAX-1 を使用できます。

klocwork でこのエラーが発生する根本的な原因を特定できません。誰かが私を助けることができますか?

4

0 に答える 0