#1120682 plymouth: crash on ply_input_device_get_keymap when no keyboard connected

Package:
plymouth
Source:
plymouth
Description:
boot animation, logger and I/O multiplexer
Submitter:
Alexandre Maurer
Date:
2025-11-17 13:17:09 UTC
Severity:
normal
#1120682#5
Date:
2025-11-14 15:00:47 UTC
From:
To:

#1120682#10
Date:
2025-11-15 09:44:55 UTC
From:
To:
I think when no keyboard is connected,
get_any_input_device_with_leds() returns NULL.

Then ply_input_device_get_keymap(NULL) attempts to access
NULL->keymap, which causes a segmentation fault.
 __ 

#1120682#15
Date:
2025-11-17 12:49:20 UTC
From:
To:
I locally tested the following patch (fix-null-input-device.patch)
with success :
--- a/src/libply-splash-core/ply-input-device.c +++ b/src/libply-splash-core/ply-input-device.c @@ -499,6 +499,9 @@ ply_input_device_get_capslock_state (ply_input_device_t *input_device) const char * ply_input_device_get_keymap (ply_input_device_t *input_device) { +        if (input_device == NULL) +                return NULL; +          xkb_layout_index_t num_indices = xkb_keymap_num_layouts (input_device->keymap);          ply_trace ("xkb layout has %d groups", num_indices);          if (num_indices == 0) {