7

整数のファイルから値を読み取っているときに、コベリティ チェックで次のエラーが発生します

関数「fread」を呼び出すと、引数「readval」が汚染されます

//coverity note: Calling function "fread" taints argument "readval".
if(fread(&readval, sizeof(int), 1, fp) < 1) {
    return;
} else {
    //coverity note: Passing tainted variable "readval" to a tainted sink.
    f1(&readval);
}

このエラーを処理するにはどうすればよいですか? 「readval」が破損していないことを確認するために実行する必要がある健全性チェック。

4

2 に答える 2

2

したがって、問題は、汚染された値を使用していることです;)

より詳細には、readval は外部データによって一度設定され、その後 fseek の引数として使用される可能性があります。この引数により、ファイルの終わりを超えてしまい、プログラムがクラッシュする可能性があります。

ファイルの終わりから離れていないことを確認するために、いくつかのチェックを入れる必要があります。

于 2014-07-21T18:08:54.413 に答える