CERT.FILE_PTR.DEREF
FILE オブジェクトへのポインターは逆参照しないでください
脆弱性とリスク
FILE オブジェクトへのポインターを逆参照すると、予期しない動作が発生する可能性があります。
軽減と防止
FILE オブジェクトへのポインターを逆参照しないでください。
脆弱コード例
コピー
#include <iostream>
int main()
{
FILE *pf1;
FILE *pf2;
FILE f4=*pf2;
pf2 = pf1;
if (fputs("Hello, World!\n", &f3) == EOF) {
/* Handle error */
}
return 0;
}
この非準拠の例では、Klocwork は 8 行目で CERT.FILE_PTR.DEREF の欠陥を報告します。これは、FILE オブジェクトへのポインターを逆参照しており、予期しない動作が発生する可能性があるためです。
修正コード例
コピー
#include <iostream>
int main()
{
FILE *pf1;
FILE *pf2;
FILE *f4=pf2;
pf2 = pf1;
if (fputs("Hello, World!\n", &f3) == EOF) {
/* Handle error */
}
return 0;
}
上記の例は、FILE オブジェクトのアドレスを使用し、FILE オブジェクトの値のコピーを使用していないため、準拠の例となっています。
関連チェッカー
- MISRA.FILE_PTR.DEREF.2012