2014-01-09 2 views
1

У меня есть следующий код кода, который fortify предупреждает о замене нулевого указателя (предупреждение происходит в выделенном разделе кода).Укрепить указатель нулевой нулевой отметки

enter image description here

Является ли это ложноположительный? Он проверяет, не является ли оно нулевым, где происходит предупреждение.

Обновление: Добавлен еще немного кода. Мы проверяем перед собой, чтобы убедиться, что displayAttribute не равен NULL. Может быть, потому что IsNotNull() является методом расширения?

enter image description here

ответ

4

предупреждение, что displayAttribute само по себе может быть null не Name. Если это тогда, то доступ к свойству Name вызовет NullReferenceException. Учитывая, что displayAttribute явно проверяется на null чуть ниже предупреждения, кажется, что предупреждение действует

EDIT

Похоже, что вы используете метод расширения для подтверждения того, что атрибут не null. Кажется довольно противоречивым использовать метод расширения таким образом. Механизм анализа, похоже, согласен со мной, поскольку он не может понять, что это то, что вы здесь делаете.

Так что да, вы можете игнорировать предупреждение здесь, но зачем это делать? Почему бы просто не сделать обычную проверку displayAttribute != null, чтобы разработчики и аналитические механизмы могли легче определить, что делает ваш код?

+0

Обновлен скриншот. Мы проверяем, чтобы displayAttribute не был нулевым. Извините, что я не включил это раньше. –

+0

Я полностью согласен с вами в методе расширения. Я на самом деле не создавал его, просто исправляя проблемы безопасности. Для меня не имело смысла так поступать. Спасибо за ответ. –