Summary: | Segmentation fault при нажатии на мультимедийные клавиши | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Aleksey Borisenkov <grizlik78> | ||||
Component: | deadbeef-hotkeys | Assignee: | vanomj <vanomj> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P3 | CC: | drool, vanomj | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Впрочем, про файл deadbeef/tools/apbuild/ctype.h это лишь предположение, может быть он даже не используется, а используется стандартный ctype.h. В любом случае, для аргументов функций типа isupper и tolower стандартом предполагается возможность представления аргумента типом unsigned char или равенство EOF. В противном случае поведение не определено. так что вызывающий код должен следить за корректностью аргумента. Проверьте пожалуйста новую версию. Если ошибка так же повторяется, то попытаюсь разобраться с кодом. Сам попробовать не могу, так как у меня нет клавиатуры с мультимедиа клавишами. Спасибо. В новой версии ошибка исправлена. |
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, где аргумент используется в качестве индекса небольшого массива. Проблемный код появился с последним обновлением.