From 031dd414a046785301a5f7d09f1f4001f028abd0 Mon Sep 17 00:00:00 2001 From: workingwei Date: Mon, 17 Nov 2025 17:15:28 +0800 Subject: [PATCH] avoid processing invalid to_dlm_mode in-lm_convert_dlm --- ...nvalid-to_dlm_mode-in-lm_convert_dlm.patch | 36 +++++++++++++++++++ lvm2.spec | 6 +++- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 0038-avoid-processing-invalid-to_dlm_mode-in-lm_convert_dlm.patch diff --git a/0038-avoid-processing-invalid-to_dlm_mode-in-lm_convert_dlm.patch b/0038-avoid-processing-invalid-to_dlm_mode-in-lm_convert_dlm.patch new file mode 100644 index 0000000..b5ac618 --- /dev/null +++ b/0038-avoid-processing-invalid-to_dlm_mode-in-lm_convert_dlm.patch @@ -0,0 +1,36 @@ +From 8716d8c1886fb459c25f8adf69a671f0941bade4 Mon Sep 17 00:00:00 2001 +From: Zdenek Kabelac +Date: Mon, 25 Mar 2024 14:33:40 +0100 +Subject: [PATCH] cov: check for to_dlm_mode return value + +Avoid processing invalid to_dlm_mode in lm_convert_dlm. +--- + daemons/lvmlockd/lvmlockd-dlm.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/daemons/lvmlockd/lvmlockd-dlm.c b/daemons/lvmlockd/lvmlockd-dlm.c +index 52a293abb..528fe7aa9 100644 +--- a/daemons/lvmlockd/lvmlockd-dlm.c ++++ b/daemons/lvmlockd/lvmlockd-dlm.c +@@ -546,7 +546,7 @@ int lm_convert_dlm(struct lockspace *ls, struct resource *r, + struct lm_dlm *lmd = (struct lm_dlm *)ls->lm_data; + struct rd_dlm *rdd = (struct rd_dlm *)r->lm_data; + struct dlm_lksb *lksb = &rdd->lksb; +- uint32_t mode; ++ int mode; + uint32_t flags = 0; + int rv; + +@@ -570,8 +570,10 @@ int lm_convert_dlm(struct lockspace *ls, struct resource *r, + flags |= LKF_VALBLK; + } + +- mode = to_dlm_mode(ld_mode); +- ++ if ((mode = to_dlm_mode(ld_mode)) < 0) { ++ log_error("lm_convert_dlm invalid mode %d", ld_mode); ++ return -EINVAL; ++ } + if (daemon_test) + return 0; + diff --git a/lvm2.spec b/lvm2.spec index 80851e2..89f73fc 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -43,7 +43,7 @@ Name: lvm2 Version: 2.03.09 -Release: 28 +Release: 29 Epoch: 8 Summary: Tools for logical volume management License: GPLv2+ and LGPLv2.1 and BSD @@ -86,6 +86,7 @@ Patch34: 0034-fix-buffer-size-usage.patch Patch35: 0035-add-internal-error-for-missing-vg.patch Patch36: 0036-enhance-pointer-safe.patch Patch37: 0037-lvmdbusd-fix-Python-script.patch +Patch38: 0038-avoid-processing-invalid-to_dlm_mode-in-lm_convert_dlm.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -511,6 +512,9 @@ fi %changelog +* Mon Nov 17 2025 weishuaihao - 8:2.03.09-29 +- cov: check for to_dlm_mode return value + * Fri Nov 14 2025 weishuaihao - 8:2.03.09-28 - lvmdbusd: Fix Python script -- Gitee