1

Fortify が null ポインターの逆参照について警告している次のコード ブロックがあります (コードの強調表示されたセクションで警告が発生します)。

ここに画像の説明を入力

これは偽陽性ですか?警告が発生している場所が null かどうかを確認しています。

更新: コードをもう少し追加しました。displayAttribute が null でないことを事前に確認しています。IsNotNull() が拡張メソッドであるためでしょうか?

ここに画像の説明を入力

4

1 に答える 1

4

警告は、displayAttributeそれ自体ではnullない可能性があるということNameです。その場合、NameプロパティへのアクセスによりNullReferenceException. displayAttribute警告のすぐ下で明示的にチェックされていることを考えるnullと、警告は有効であるようです

編集

拡張メソッドを使用して、属性が ではないことを検証しているようですnull。このように拡張メソッドを使用するのはかなり直感に反するようです。分析エンジンは、これがここで何をしているのかを推測できないため、私に同意しているようです。

はい、ここで警告を無視できますが、なぜそうするのですか? displayAttribute != null開発者と分析エンジンの両方がコードが実際に何をしているかをより簡単に推測できるように 、通常のチェックだけを行ってみませんか?

于 2014-01-09T14:27:24.383 に答える