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