From f2c5f3fadc68922d6b5dcb8967fd5de9f785c3ec Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Thu, 9 Apr 2026 14:32:51 +0200 Subject: [PATCH] libgpiod: update to v2.2.4 Bug-fix release addressing several issues discovered during an AI-augmented security audit. The most severe bug was found in the C extension code of the python bindings - which also get an update - but there were some memory leaks and integer overflow bugs in the core C library as well as in tools and DBus daemon. Full changelog: Bug fixes: - fix buffer over-read bugs when translating uAPI structs to library types - fix variable and argument types where necessary - sanitize values returned by the kernel to avoid potential buffer overflows - fix memory leaks in gpio-tools - add missing return value checks in gpio-tools - fix period parsing in gpio-tools - use correct loop counter in error path in gpio-manager Improvements: - make tests work with newer coreutils by removing cases checking tools' behavior on SIGINT which stopped working due to changes in behavior of the timeout tool Also: drop the patch that's now upstream from the recipe. Signed-off-by: Bartosz Golaszewski Signed-off-by: Khem Raj --- ...tools-tests-remove-SIGINT-test-cases.patch | 83 ------------------- .../{libgpiod_2.2.3.bb => libgpiod_2.2.4.bb} | 3 +- 2 files changed, 1 insertion(+), 85 deletions(-) delete mode 100644 meta-oe/recipes-support/libgpiod/libgpiod-2.x/0001-tools-tests-remove-SIGINT-test-cases.patch rename meta-oe/recipes-support/libgpiod/{libgpiod_2.2.3.bb => libgpiod_2.2.4.bb} (96%) diff --git a/meta-oe/recipes-support/libgpiod/libgpiod-2.x/0001-tools-tests-remove-SIGINT-test-cases.patch b/meta-oe/recipes-support/libgpiod/libgpiod-2.x/0001-tools-tests-remove-SIGINT-test-cases.patch deleted file mode 100644 index 7fe06b9882..0000000000 --- a/meta-oe/recipes-support/libgpiod/libgpiod-2.x/0001-tools-tests-remove-SIGINT-test-cases.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 3c38c5f9ab49384039f35408656a88f87619dd03 Mon Sep 17 00:00:00 2001 -From: Bartosz Golaszewski -Date: Wed, 18 Mar 2026 14:07:06 +0100 -Subject: [libgpiod][PATCH] tools: tests: remove SIGINT test cases - -In coreutils v9.10 (specifically with commit 8c2461933411 ("timeout: -honor ignored signal dispositions")) the behavior of timeout changed and -it will no longer propagate SIGINT or SIGQUIT in shell background jobs. -This breaks the test cases checking the behavior of tools after SIGINT. -We have to assume that if exit after SIGTERM works, then so does it -after SIGINT and remove the failing tests. - -Upstream-Status: Submitted [https://lore.kernel.org/all/20260318131413.56575-1-bartosz.golaszewski@oss.qualcomm.com/] -Signed-off-by: Bartosz Golaszewski ---- - tools/gpio-tools-test.bash | 37 ------------------------------------- - 1 file changed, 37 deletions(-) - -diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash -index 71d6e3d..62f6836 100755 ---- a/tools/gpio-tools-test.bash -+++ b/tools/gpio-tools-test.bash -@@ -1415,17 +1415,6 @@ test_gpioset_with_lines_strictly_by_name() { - gpiosim_check_value sim0 6 0 - } - --test_gpioset_interactive_after_SIGINT() { -- gpiosim_chip sim0 num_lines=8 line_name=1:foo -- -- dut_run gpioset -i foo=1 -- -- dut_kill -SIGINT -- dut_wait -- -- status_is 130 --} -- - test_gpioset_interactive_after_SIGTERM() { - gpiosim_chip sim0 num_lines=8 line_name=1:foo - -@@ -1907,20 +1896,6 @@ test_gpiomon_multiple_lines_across_multiple_chips() { - assert_fail dut_readable - } - --test_gpiomon_exit_after_SIGINT() { -- gpiosim_chip sim0 num_lines=8 -- -- local sim0=${GPIOSIM_CHIP_NAME[sim0]} -- -- dut_run gpiomon --banner --chip "$sim0" 4 -- dut_regex_match "Monitoring line .*" -- -- dut_kill -SIGINT -- dut_wait -- -- status_is 130 --} -- - test_gpiomon_exit_after_SIGTERM() { - gpiosim_chip sim0 num_lines=8 - -@@ -2503,18 +2478,6 @@ test_gpionotify_multiple_lines_across_multiple_chips() { - assert_fail dut_readable - } - --test_gpionotify_exit_after_SIGINT() { -- gpiosim_chip sim0 num_lines=8 -- -- dut_run gpionotify --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 4 -- dut_regex_match "Watching line .*" -- -- dut_kill -SIGINT -- dut_wait -- -- status_is 130 --} -- - test_gpionotify_exit_after_SIGTERM() { - gpiosim_chip sim0 num_lines=8 - --- -2.47.3 - diff --git a/meta-oe/recipes-support/libgpiod/libgpiod_2.2.3.bb b/meta-oe/recipes-support/libgpiod/libgpiod_2.2.4.bb similarity index 96% rename from meta-oe/recipes-support/libgpiod/libgpiod_2.2.3.bb rename to meta-oe/recipes-support/libgpiod/libgpiod_2.2.4.bb index 38829a620f..2c8d9f1873 100644 --- a/meta-oe/recipes-support/libgpiod/libgpiod_2.2.3.bb +++ b/meta-oe/recipes-support/libgpiod/libgpiod_2.2.4.bb @@ -13,10 +13,9 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}-2.x:" SRC_URI += " \ file://gpio-manager.init \ - file://0001-tools-tests-remove-SIGINT-test-cases.patch \ " -SRC_URI[sha256sum] = "70012b0262e4b90f140431efa841ca89643b02ea6c09f507e23cec664a51b71a" +SRC_URI[sha256sum] = "13207176b0eb9b3e0f02552d5f49f5a6a449343ce47416158bb484d9d3019592" # Enable all project features for ptest PACKAGECONFIG[tests] = " \