From a4b2aa29d50eeb0c0f9bde2dc005c8f1d6e5af29 Mon Sep 17 00:00:00 2001 From: zhangyao Date: Mon, 15 Apr 2024 19:08:58 +0800 Subject: [PATCH] fix mkfds-rw-character-device and mkfds-ro-regular-file test failed --- ...sh-add-a-helper-funcion-making-a-dev.patch | 65 +++++++++++++++++++ ...-refer-on-the-line-follwoing-the-use.patch | 41 ++++++++++++ util-linux.spec | 10 ++- 3 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 backport-tests-functions.sh-add-a-helper-funcion-making-a-dev.patch create mode 100644 backport-tests-lsfd-don-t-refer-on-the-line-follwoing-the-use.patch diff --git a/backport-tests-functions.sh-add-a-helper-funcion-making-a-dev.patch b/backport-tests-functions.sh-add-a-helper-funcion-making-a-dev.patch new file mode 100644 index 0000000..89f566b --- /dev/null +++ b/backport-tests-functions.sh-add-a-helper-funcion-making-a-dev.patch @@ -0,0 +1,65 @@ +From d4dea14933bc3ee750d6762a6f615d2a4fe24c34 Mon Sep 17 00:00:00 2001 +From: Masatake YAMATO +Date: Wed, 10 Apr 2024 18:36:47 +0900 +Subject: [PATCH] tests: (functions.sh) add a helper funcion making a device + number from given major and minor nums + +Fixes #2919. +Suggested by Karel Zak . + +The original code used an obsolete formula to make a device number from +given major and minor numbers. + +ts_device_make is a new helper function based on the formula of +__SYSMACROS_DEFINE_MAKEDEV macro defined in +/usr/include/bits/sysmacros.h of GNU libc. + +Suggested by Karel Zak in #2919. +Signed-off-by: Masatake YAMATO +--- + tests/functions.sh | 15 +++++++++++++++ + tests/ts/lsfd/lsfd-functions.bash | 2 +- + 2 files changed, 16 insertions(+), 1 deletion(-) + +diff --git a/tests/functions.sh b/tests/functions.sh +index 5fe5ba07f..4a00b2ff4 100644 +--- a/tests/functions.sh ++++ b/tests/functions.sh +@@ -788,6 +788,21 @@ function ts_device_has { + return $res + } + ++# Based on __SYSMACROS_DEFINE_MAKEDEV macro ++# defined in /usr/include/bits/sysmacros.h of GNU libc. ++function ts_makedev ++{ ++ local major="$1" ++ local minor="$2" ++ local dev ++ ++ dev=$(( ( major & 0x00000fff ) << 8)) ++ dev=$((dev | ( major & 0xfffff000 ) << 32)) ++ dev=$((dev | ( minor & 0x000000ff ) << 0)) ++ dev=$((dev | ( minor & 0xffffff00 ) << 12)) ++ echo $dev ++} ++ + function ts_is_uuid() + { + printf "%s\n" "$1" | grep -E -q '^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$' +diff --git a/tests/ts/lsfd/lsfd-functions.bash b/tests/ts/lsfd/lsfd-functions.bash +index 3a3f58f0c..533c25fae 100644 +--- a/tests/ts/lsfd/lsfd-functions.bash ++++ b/tests/ts/lsfd/lsfd-functions.bash +@@ -44,7 +44,7 @@ function lsfd_compare_dev { + echo 'DEV[RUN]:' $? + local MAJ=${DEV%:*} + local MIN=${DEV#*:} +- local DEVNUM=$(( ( MAJ << 8 ) + MIN )) ++ local DEVNUM=$(ts_makedev "$MAJ" "$MIN") + local STAT_DEVNUM=$(stat -c "%d" "$FILE") + echo 'STAT[RUN]:' $? + if [ "${DEVNUM}" == "${STAT_DEVNUM}" ]; then +-- +2.33.0 + diff --git a/backport-tests-lsfd-don-t-refer-on-the-line-follwoing-the-use.patch b/backport-tests-lsfd-don-t-refer-on-the-line-follwoing-the-use.patch new file mode 100644 index 0000000..cda3705 --- /dev/null +++ b/backport-tests-lsfd-don-t-refer-on-the-line-follwoing-the-use.patch @@ -0,0 +1,41 @@ +From 5aa0c75c78dfb6a0c9851b348ba778149a4550a5 Mon Sep 17 00:00:00 2001 +From: Masatake YAMATO +Date: Thu, 11 Apr 2024 11:49:21 +0900 +Subject: [PATCH] tests: (lsfd) don't refer "$?" on the line follwoing the use + of "local" + +Suggested by ShellCheck. + +Signed-off-by: Masatake YAMATO +--- + tests/ts/lsfd/lsfd-functions.bash | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/tests/ts/lsfd/lsfd-functions.bash b/tests/ts/lsfd/lsfd-functions.bash +index 533c25fae..9c2eb0785 100644 +--- a/tests/ts/lsfd/lsfd-functions.bash ++++ b/tests/ts/lsfd/lsfd-functions.bash +@@ -40,13 +40,18 @@ function lsfd_compare_dev { + ts_check_prog "expr" + ts_check_prog "stat" + +- local DEV=$("${LSFD}" --raw -n -o DEV -Q "${EXPR}") ++ local DEV ++ DEV=$("${LSFD}" --raw -n -o DEV -Q "${EXPR}") + echo 'DEV[RUN]:' $? ++ + local MAJ=${DEV%:*} + local MIN=${DEV#*:} + local DEVNUM=$(ts_makedev "$MAJ" "$MIN") +- local STAT_DEVNUM=$(stat -c "%d" "$FILE") ++ ++ local STAT_DEVNUM ++ STAT_DEVNUM=$(stat -c "%d" "$FILE") + echo 'STAT[RUN]:' $? ++ + if [ "${DEVNUM}" == "${STAT_DEVNUM}" ]; then + echo 'DEVNUM[STR]:' 0 + else +-- +2.33.0 + diff --git a/util-linux.spec b/util-linux.spec index 7f50002..9c2f5f8 100644 --- a/util-linux.spec +++ b/util-linux.spec @@ -3,7 +3,7 @@ Name: util-linux Version: 2.39.1 -Release: 5 +Release: 6 Summary: A random collection of Linux utilities License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain URL: https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git @@ -28,6 +28,8 @@ Patch6006: backport-fadvise-test-test-with-64k-blocks.patch Patch6007: backport-tests-lsfd-mkfds-alter-the-L4-ports-for-avo.patch Patch6008: backport-CVE-2024-28085.patch Patch6009: backport-tests-test_mkfds-netlink-pass-a-correct-file-descrip.patch +Patch6010: backport-tests-functions.sh-add-a-helper-funcion-making-a-dev.patch +Patch6011: backport-tests-lsfd-don-t-refer-on-the-line-follwoing-the-use.patch Patch9000: SKIPPED-no-root-permissions-test.patch %ifarch sw_64 @@ -412,6 +414,12 @@ fi %endif %changelog +* Mon Apr 15 2024 zhangyao - 2.39.1-6 +- Type:bugfix +- CVE:NA +- SUG:NA +- DESC:fix mkfds-rw-character-device and mkfds-ro-regular-file test failed + * Sun Apr 7 2024 zhangyao - 2.39.1-5 - Type:CVE - CVE:CVE-2024-28085 -- Gitee