Анализ исходного кода ОС FreeBSD выявил более тысячи серьезных ошибок

image

Теги: исследование, исходный код, FreeBSD

Исследователи проанализировали исходный код операционной системы FreeBSD на предмет потенциальных уязвимостей и некритичных ошибок.

Разработчик системы статического анализа кода PVS-Studio Святослав Размыслов исследовал исходный код операционной системы FreeBSD на предмет потенциальных уязвимостей и некритичных ошибок. Всего эксперт обнаружил порядка тысячи серьезных предупреждений анализатора.

Размыслов установил PC-BSD и написал утилиту на C++, позволяющую сохранить рабочее окружение компиляторов на момент сборки ядра. Полученную информацию специалист использовал для получения и анализа препроцессированных файлов. Подобный способ позволил исследователю провести глубокий анализ кода и найти наиболее сложные и интересные ошибки.

В ходе анализа кода было обнаружено множество опечаток, одинаковых фрагментов и прочих ошибок в исходном коде операционной системы. Исследователь сообщил о найденных неисправностях разработчикам FreeBSD. На момент написания новости создатели операционной системы приступили к устранению найденных ошибок.

В качестве примера можно привести ошибку приоритетов операций, меняющую логику вычислений. Анализатор обнаружил проблему в следующем фрагменте кода:

int mfi_tbolt_send_frame(struct mfi_softc *sc, struct mfi_command *cm)
{
  ....
  if (cdb[0] != 0x28 || cdb[0] != 0x2A) {  // <='
    if ((req_desc = mfi_tbolt_build_mpt_cmd(sc, cm)) == NULL) {
      device_printf(sc->mfi_dev, "Mapping from MFI "
          "to MPT Failed \n");
      return 1;
    }
  }
  else
    device_printf(sc->mfi_dev, "DJA NA XXX SYSPDIO\n");
....
}

В данном случае первое условное выражение всегда истинно, и ветвь “else” никогда не получает управления. 


или введите имя

CAPTCHA
Вася
20-02-2016 19:06:02
ха-ха...кого-то, наконец, не обломало спустя столько лет )
0 |
QNX
23-02-2016 23:43:27
Было бы здорово, если провели подобный анализ кода #OpenBSD, ибо была инфа что они нюхаются с фбр.
0 |