Package: src:ukui-control-center
Severity: important
Tags: upstream
Version: 4.20.0.1-1

ukui-system-service crash-loops at boot when the Settings plugin
(liblaunchSysDbus.so) initializes DDC brightness control.

sysdbusregister.cpp uses the deprecated sequence
ddca_create_edid_display_identifier() + ddca_create_display_ref().
In libddcutil >= 2.2.4 (sid ships 2.2.7), display_id_to_dsel() never
sets dsel->edidbytect for DISP_ID_EDID (stays 0 from calloc), so the
EDID selector always trips the assert in
ddc_test_display_ref_by_selector(). trixie (2.2.0) is unaffected.

Fix: use the dref already provided in DDCA_Display_Info
(ddca_open_display2(info[i].dref, ...)), as ddcutil's sample clients
do. Verified on hardware; will be uploaded closing this bug.

Original crash info:

Aug 17 13:51:16 kylin-DH98L ukui-system-service[3786]:
ddc_display_selection.c:126: ddc_test_display_ref_by_selector: Assertion
"dsel->edidbytect > 0 && dsel->edidbytect <= 128" failed.
Aug 17 13:51:16 kylin-DH98L systemd-coredump[3851]: Process 3786
(ukui-system-ser) of user 0 terminated abnormally with signal 6/ABRT,
processing...

#0  __pthread_kill_implementation (signo=6) at ./nptl/pthread_kill.c:44
#3  __GI_raise (sig=6)
#4  __GI_abort () at ./stdlib/abort.c:77
#7  __assert_fail
#8  0x00007da3f50fe6d1 () at /usr/lib/x86_64-linux-gnu/libddcutil.so.5
#11 ddca_create_display_ref () at /usr/lib/x86_64-linux-gnu/libddcutil.so.5
#12 0x00007da3f8ef3838 ()   [liblaunchSysDbus.so]

Reply via email to