openEuler inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IAD5GG?from=project-issue
CVE: NA
--------------------
When your development environment does not have the libelf library and you
compile an external module with the "M=xxx" compilation option, the
external module will not have ORC information and there will be no warning
or errors.
If a machine insmod this module and it's process is calling a function in
this module, typing kaptch will result in an error indicating that the
stack of this process is not trustworthy. The worst thing is that if this
module is a necessary and will be used for a long time, kpatch will be
difficult to type.
---------------------
Revert "kbuild: fix false positive warning/error about missing libelf"
This reverts commit ef7cfd00b2caf6edeb7f169682b64be2d0a798cf.
Fixes: ef7cfd00b2caf6edeb ("kbuild: fix false positive warning/error about missing libelf")
Signed-off-by: Zhao Xuedong <zhaoxuedong(a)meituan.com>
---
Makefile | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/Makefile b/Makefile
index fbaeeb80a69e..82dcf846d07b 100644
--- a/Makefile
+++ b/Makefile
@@ -1100,6 +1100,11 @@ ifdef CONFIG_STACK_VALIDATION
ifeq ($(has_libelf),1)
objtool_target := tools/objtool FORCE
else
+ ifdef CONFIG_UNWINDER_ORC
+ $(error "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel")
+ else
+ $(warning "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel")
+ endif
SKIP_STACK_VALIDATION := 1
export SKIP_STACK_VALIDATION
endif
@@ -1249,14 +1254,6 @@ uapi-asm-generic:
PHONY += prepare-objtool prepare-resolve_btfids
prepare-objtool: $(objtool_target)
-ifeq ($(SKIP_STACK_VALIDATION),1)
-ifdef CONFIG_UNWINDER_ORC
- @echo "error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
- @false
-else
- @echo "warning: Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
-endif
-endif
prepare-resolve_btfids: $(resolve_btfids_target)
ifeq ($(ERROR_RESOLVE_BTFIDS),1)
--
2.43.0
openEuler inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IAD5GG?from=project-issue
CVE: NA
-----------------------------------------------------------------------------------
When your development environment does not have the libelf library and you compile an external module with the "M=xxx" compilation option, the external module will not have ORC information and there will be no warning or errors.
If a machine insmod this module, and if a process is calling a function in this module, typing kaptch will result in an error indicating that the stack of this process is not trustworthy. The worst thing is that if this module is a necessary and will be used for a long time, kpatch will be difficult to type.
Revert "kbuild: fix false positive warning/error about missing libelf"
This reverts commit ef7cfd00b2caf6edeb7f169682b64be2d0a798cf.
Fixes: ef7cfd00b2caf6edeb ("kbuild: fix false positive warning/error about missing libelf")
Reported-by: wanglong <wanglong19(a)meituan.com>
Reported-by: wufan <wufan19(a)meituan.com>
Reported-by: zhaoxuedong <zhaoxuedong(a)meituan.com>
---
Makefile | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/Makefile b/Makefile
index fbaeeb80a69e..82dcf846d07b 100644
--- a/Makefile
+++ b/Makefile
@@ -1100,6 +1100,11 @@ ifdef CONFIG_STACK_VALIDATION
ifeq ($(has_libelf),1)
objtool_target := tools/objtool FORCE
else
+ ifdef CONFIG_UNWINDER_ORC
+ $(error "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel")
+ else
+ $(warning "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel")
+ endif
SKIP_STACK_VALIDATION := 1
export SKIP_STACK_VALIDATION
endif
@@ -1249,14 +1254,6 @@ uapi-asm-generic:
PHONY += prepare-objtool prepare-resolve_btfids
prepare-objtool: $(objtool_target)
-ifeq ($(SKIP_STACK_VALIDATION),1)
-ifdef CONFIG_UNWINDER_ORC
- @echo "error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
- @false
-else
- @echo "warning: Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
-endif
-endif
prepare-resolve_btfids: $(resolve_btfids_target)
ifeq ($(ERROR_RESOLVE_BTFIDS),1)
--
2.43.0
From: Hans de Goede <hdegoede(a)redhat.com>
mainline inclusion
from mainline-v6.11-rc1
commit c0dc9adf9474ecb7106e60e5472577375aedaed3
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAKQ89
CVE: CVE-2024-43830
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Triggers which have trigger specific sysfs attributes typically store
related data in trigger-data allocated by the activate() callback and
freed by the deactivate() callback.
Calling device_remove_groups() after calling deactivate() leaves a window
where the sysfs attributes show/store functions could be called after
deactivation and then operate on the just freed trigger-data.
Move the device_remove_groups() call to before deactivate() to close
this race window.
This also makes the deactivation path properly do things in reverse order
of the activation path which calls the activate() callback before calling
device_add_groups().
Fixes: a7e7a3156300 ("leds: triggers: add device attribute support")
Cc: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
Link: https://lore.kernel.org/r/20240504162533.76780-1-hdegoede@redhat.com
Signed-off-by: Lee Jones <lee(a)kernel.org>
Conflicts:
drivers/leds/led-triggers.c
[Fix context conflict]
Signed-off-by: Luo Gengkun <luogengkun2(a)huawei.com>
---
drivers/leds/led-triggers.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index 4e7b78a84149..cbe70f38cb57 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -177,9 +177,9 @@ int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig)
flags);
cancel_work_sync(&led_cdev->set_brightness_work);
led_stop_software_blink(led_cdev);
+ device_remove_groups(led_cdev->dev, led_cdev->trigger->groups);
if (led_cdev->trigger->deactivate)
led_cdev->trigger->deactivate(led_cdev);
- device_remove_groups(led_cdev->dev, led_cdev->trigger->groups);
led_cdev->trigger = NULL;
led_cdev->trigger_data = NULL;
led_cdev->activated = false;
--
2.34.1
From: Hans de Goede <hdegoede(a)redhat.com>
mainline inclusion
from mainline-v6.11-rc1
commit c0dc9adf9474ecb7106e60e5472577375aedaed3
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAKQ89
CVE: CVE-2024-43830
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Triggers which have trigger specific sysfs attributes typically store
related data in trigger-data allocated by the activate() callback and
freed by the deactivate() callback.
Calling device_remove_groups() after calling deactivate() leaves a window
where the sysfs attributes show/store functions could be called after
deactivation and then operate on the just freed trigger-data.
Move the device_remove_groups() call to before deactivate() to close
this race window.
This also makes the deactivation path properly do things in reverse order
of the activation path which calls the activate() callback before calling
device_add_groups().
Fixes: a7e7a3156300 ("leds: triggers: add device attribute support")
Cc: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
Link: https://lore.kernel.org/r/20240504162533.76780-1-hdegoede@redhat.com
Signed-off-by: Lee Jones <lee(a)kernel.org>
Conflicts:
drivers/leds/led-triggers.c
[Fix context conflict]
Signed-off-by: Luo Gengkun <luogengkun2(a)huawei.com>
---
drivers/leds/led-triggers.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index 4e7b78a84149..cbe70f38cb57 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -177,9 +177,9 @@ int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig)
flags);
cancel_work_sync(&led_cdev->set_brightness_work);
led_stop_software_blink(led_cdev);
+ device_remove_groups(led_cdev->dev, led_cdev->trigger->groups);
if (led_cdev->trigger->deactivate)
led_cdev->trigger->deactivate(led_cdev);
- device_remove_groups(led_cdev->dev, led_cdev->trigger->groups);
led_cdev->trigger = NULL;
led_cdev->trigger_data = NULL;
led_cdev->activated = false;
--
2.34.1