Bug 29196

Summary: Segmentation fault при нажатии на мультимедийные клавиши
Product: Sisyphus Reporter: Aleksey Borisenkov <grizlik78>
Component: deadbeef-hotkeysAssignee: Nobody's working on this, feel free to take it <nobody>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: drool
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Лог GDB none

Description Aleksey Borisenkov 2013-07-17 17:57:21 MSK
Created attachment 5891 [details]
Лог GDB

$ rpm -qa deadbeef\*
deadbeef-0.5.6-alt3.252d7cbf
deadbeef-hotkeys-debuginfo-0.5.6-alt3.252d7cbf
deadbeef-in-mpeg-0.5.6-alt3.252d7cbf
deadbeef-out-alsa-0.5.6-alt3.252d7cbf
deadbeef-gtk2-0.5.6-alt3.252d7cbf
deadbeef-gtk2-debuginfo-0.5.6-alt3.252d7cbf
deadbeef-in-oggvorbis-0.5.6-alt3.252d7cbf
deadbeef-hotkeys-0.5.6-alt3.252d7cbf
deadbeef-in-mpeg-debuginfo-0.5.6-alt3.252d7cbf

$ uname -mr
3.9.9-std-def-alt1 i686

При нажатии на мультимедийные клавиши (управление громкостью, включение wi-fi, камеры и т.д.) на ASUS EEEPC 1000 происходит segmentation fault.
Сбой происходит на вызове функции (скорее макроса) isupper. Из лога видно, что при этом аргументом является большое число (269025043 для клавиши увеличения громкости).
Скорее всего используется макрос из deadbeef/tools/apbuild/ctype.h, где аргумент используется в качестве индекса небольшого массива.
Проблемный код появился с последним обновлением.
Comment 1 Aleksey Borisenkov 2013-07-17 21:27:15 MSK
Впрочем, про файл deadbeef/tools/apbuild/ctype.h это лишь предположение, может быть он даже не используется, а используется стандартный ctype.h. В любом случае, для аргументов функций типа isupper и tolower стандартом предполагается возможность представления аргумента типом unsigned char или равенство EOF. В противном случае поведение не определено. так что вызывающий код должен следить за корректностью аргумента.
Comment 2 andyc@altlinux.org 2013-10-12 17:56:03 MSK
Проверьте пожалуйста новую версию. Если ошибка так же повторяется, 
то попытаюсь разобраться с кодом. Сам попробовать не могу, 
так как у меня нет клавиатуры с мультимедиа клавишами.
Comment 3 Aleksey Borisenkov 2013-10-13 13:46:43 MSK
Спасибо. В новой версии ошибка исправлена.