При работе драйвера 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:".
Created attachment 6046 [details] Патч с исправлением
Н-да, опять баг с патчем висит открытым, безобразие.
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)