簡體   English   中英

奇怪的Klockwork發現(緩沖區溢出)

[英]Odd Klockwork finding (Buffer overflow)

我無法弄清楚這一點。 我有以下代碼:

#define SIZE 1000
#define MEMORY 0x10000000

unsigned char table[SIZE];
int i;

for(i=0;i<SIZE;i++) {
    table[i] = *(unsigned char*)(MEMORY +i);
}

而Kloc​​kwork告訴我

緩沖區溢出,'table'的數組索引可能超出范圍。 大小為1000(調整大小為250)的數組'表'可以使用索引值250..999。

這里有真正的問題嗎? 如果沒有,這似乎是一個非常明顯的誤報。

此代碼沒有問題:Frama-C確認使用此命令行: frama-c -val -absolute-valid-range 0x10000000-0x10001000 file.c前提是您將for循環放在函數體中。

根據Klockwork的說法,這個誤報可能與您的演員有關:請參閱http://developer.klocwork.com/community/forums/klocwork-general/general-discussion/buffer-overflow-adjusted-size

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM