Подробности

[В начало]

Проблема в реализации № L0162

Краткое описание

farsync: некорректные обращения к памяти в fst_add_one() и fst_init_card()

Подробное описание

В функциях fst_add_one() и fst_init_card() обнаружено несколько проблем:

  • разыменование некорректного указателя card->ports[card->nports - 1] в случае, когда register_hdlc_device() завершается в ошибкой для первого порта в fst_init_card();
  • переполнение fst_card_array в fst_card_array[no_of_cards_added], т.к. отсутствует проверка на переполнение;
  • использование после освобождения, т.к. указатель на освобождённую память card остаётся в fst_card_array, если происходит ошибка после присваивания fst_card_array[no_of_cards_added] = card;
  • несколько утечек памяти на ошибочных путях в fst_add_one().

Компонент

linux-kernel 3.15

Принято

https://lkml.org/lkml/2014/7/10/676
commit

Статус

Исправлено в ядре 3.16-rc6

[В начало]