Примеры ошибок, обнаруженных с помощью диагностики V3105

V3105. The 'a' variable was used after it was assigned through null-conditional operator. NullReferenceException is possible.


Microsoft Bot Builder

V3105 The 'parts' variable was used after it was assigned through null-conditional operator. NullReferenceException is possible. JwtTokenExtractor.cs 60


public async Task<ClaimsIdentity>
GetIdentityAsync(string authorizationHeader)
{
  ....
  string[] parts = authorizationHeader?.Split(' ');
  if (parts.Length == 2) // <=
    return await GetIdentityAsync(parts[0], parts[1]).
                 ConfigureAwait(false);
  ....
}

.NET Core Libraries (CoreFX)

V3105 The 'versionString' variable was used after it was assigned through null-conditional operator. NullReferenceException is possible. RuntimeInformation.cs 29


public static string FrameworkDescription
{
  get
  {
    if (s_frameworkDescription == null)
    {
      string versionString = (string)AppContext.GetData("FX_PRODUCT_VERSION");
      if (versionString == null)
      {
        ....
        versionString
          = typeof(object).Assembly
                          .GetCustomAttribute<
                             AssemblyInformationalVersionAttribute>()
                         ?.InformationalVersion;    // <=
        ....
        int plusIndex = versionString.IndexOf('+'); // <=
        ....
      }
      ....
    }
    ....
  }
}


Найденные ошибки

Проверено проектов
409
Собрано ошибок
14 072

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;
Этот сайт использует куки и другие технологии, чтобы предоставить вам более персонализированный опыт. Продолжая просмотр страниц нашего веб-сайта, вы принимаете условия использования этих файлов. Если вы не хотите, чтобы ваши данные обрабатывались, пожалуйста, покиньте данный сайт. Подробнее →
Принять