Bug 29847 - Ошибка в драйвере bcmxcp
Summary: Ошибка в драйвере bcmxcp
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: nut-server (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Michael Shigorin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-25 14:07 MSK by Alex Moskalenko
Modified: 2014-04-23 19:21 MSK (History)
1 user (show)

See Also:


Attachments
Патч с исправлением (294 bytes, patch)
2014-02-25 14:08 MSK, Alex Moskalenko
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Moskalenko 2014-02-25 14:07:46 MSK
При работе драйвера bcmxcp с ИБП Eaton Powerware 9155 получаем segmentation fault. Отладка драйвера показала, что при получении общей информации об ИБП в функции upsdrv_initinfo() разработчики получают номера версий firmware для различных компонентов ИБП, и при этом сопоставляют его с заранее определенным массивом строк const char *cpu_name[5]. Данный ИБП сообщает о наличии 8 записей о версиях firmware. В цикле их расшифровки неправильно указано условие выхода из цикла (while ((len > 0) && (ncpu <= 5))), что приводит к обращению к несуществующему элементу cpu_name[5] и, соответственно, sigsegv. Приложенный патч исправляет эту проблему, изменяя условие на ((len > 0) && (ncpu <= 4)).

PS Возможно, есть смысл заканчивать цикл только по len > 0, а вместо неопределенных (и, возможно, специфичных для каждой модели ИБП) наименований firmware подставлять что-то типа "UNKN:".
Comment 1 Alex Moskalenko 2014-02-25 14:08:37 MSK
Created attachment 6046 [details]
Патч с исправлением
Comment 2 Michael Shigorin 2014-04-23 19:10:50 MSK
Н-да, опять баг с патчем висит открытым, безобразие.
Comment 3 Repository Robot 2014-04-23 19:21:17 MSK
nut-2.6.5-alt5 -> sisyphus:

* Wed Apr 23 2014 Michael Shigorin <mike@altlinux> 2.6.5-alt5
- added bcmxcp patch by Alex Moskalenko (closes: #29847)