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 <bartosz.golaszewski@oss.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Bartosz Golaszewski
2026-04-09 14:32:51 +02:00
committed by Khem Raj
parent ffb7d752ff
commit f2c5f3fadc
2 changed files with 1 additions and 85 deletions
@@ -1,83 +0,0 @@
From 3c38c5f9ab49384039f35408656a88f87619dd03 Mon Sep 17 00:00:00 2001
From: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
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 <bartosz.golaszewski@oss.qualcomm.com>
---
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
@@ -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] = " \