Подробности

[В начало]

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

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

p54pci: p54p_probe() сообщает об успехе, когда это не так

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

В случае, когда pci_set_dma_mask() или pci_set_consistent_dma_mask() заканчиваются с ошибкой, функция p54p_probe() прерывает процесс инициализации, освобождает все ресурсы, но возвращает 0. Получив 0 из функции p54p_probe() ядро считает, что драйвер успешно инициализировал структуру pci_dev, хотя это не так. В результате ядро начнет работать со структурой как уже инициализированной, что приведет к обращению к неинициализированным полям с непредсказуемыми последствиями.

Аналогичная проблема существует и когда pci_resource_len() возвращает значение меньшее sizeof(struct p54p_csr).

Компонент

linux-kernel 3.8

Принято

https://lkml.org/lkml/2013/1/1/36
commit

Статус

Исправлено в kernel 3.9-rc1

[В начало]